Trang 1 “TRUONG DAI HOC KIEN TRUC HA NOI KHOA CONG NGHE THONG TIN ĐỎ ÁN MÔN NGÔN NGỮ C# VÀ CÔNG NGHỆ .NET DE TAI: NGHIEN CUU XAY DUNG GAME SPACE SHOOTER Nganh: CONG NGHE THONG TIN Giảng
Trang 1“TRUONG DAI HOC KIEN TRUC HA NOI
KHOA CONG NGHE THONG TIN
ĐỎ ÁN MÔN NGÔN NGỮ C# VÀ CÔNG NGHỆ NET
DE TAI: NGHIEN CUU XAY DUNG GAME SPACE
SHOOTER
Nganh: CONG NGHE THONG TIN
Giảng viên hướng dẫn: Ths Nguyễn Hồng Thanh
Lớp: 2ICN2
Nhóm: Nhóm 3
Nhóm sinh viên thực hiện:
Họ và tên: Mai Xuân Điệp Msv: 2155010072
Hà Nội, 02/2024
Trang 2MUC LUC
LOI MO BAU
DANH MUC TU VIET TAT VA KY HIEU
CHUONG 1: CO SO LY THUYET
1.1
LALA
1.1.2
1.1.3
1.2
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.3
1.4
Tổng quan về đề tài
Mo ta tro choi
Lịch sứ hình thành và phát triển của trò chơi
Ung dụng và đề xuất cải tiễn trò chơi
Tổng quan về ngôn ngữ C Sharp và công nghệ NET
Giới thiệu vỀ ngôn ngữ C Sharp
Một số đặc trưng của ngôn ngữ C Sharp
Uu diém
Ứng dụng
Giới thiệu về công nghệ NET
Ung dụng công nghệ.NET
Tổng quan về Unity
Tổng quan về công cụ hỗ trợ Visual Studio Code
CHƯƠNG 2: XÂY DỰNG VÀ TRIÊN KHAI ỨNG DỤNG cá tre
2.1 “Tạo dự ấn 5 LH THẾ HH TH TT TH TH Tà HT TT HH HH gi 2.2 Cấu hình dự án 2D
2.3 Load Baclgroundd - 7 - 5 5 <1 xu HH TH Thư 2.4 Sự kiện thực hiện phép toắn - - << TH TH HT ngư
KET LUẬN
TAI LIEU THAM KHAO
Trang 3LOI MO DAU
Công nghệ thông tin (CNTT) ngày cảng có vai trò quan trọng trong cuộc sống hàng ngày của chúng ta Từ đó việc ứng dụng CNTT vào các lĩnh vực trong đời sống giúp công việc được tiễn hành nhanh chóng và hiệu quả hơn Có rất nhiều công việc mới mở
ra và phát triên song song cùng với sự phát triên của công nghệ thông tin, một trong số đó
là phát triển game, một hướng đi đem lại hiệu quả kinh tế rất lớn
Chúng em chọn đề tài “Nghiên cứu xây dựng game Pacman bằng ngôn ngữ Java” nhằm tìm hiểu sâu hơn về ngôn ngữ Java trong lập trình hướng đối tượng, từ đó viết một ứng dụng cụ thể nhằm thử nghiệm, làm cơ sở cũng như củng cô kiến thức và định hướng
kế hoạch xây dựng những ứng dụng game cu thé, phát triển theo hướng dịch vụ trong tương lai
Mục tiêu của bài là hiểu, phân tích và giải quyết được bài toán lập trình hướng đôi
tượng Nghiên cứu môi trường phát triển, dùng ngôn ngữ Java xây dựng ứng dụng cụ thê Sau tất cả em chân thành cảm ơn thầy Nguyễn Hồng Thanh đã truyền dạy cho em những kiến thức cần thiết và bỗ ích của môn “Công nghệ Java” trong những buôi học trên lớp, cũng như những buổi thực hành và cả những lời giảng giải tận tình của thầy trong những buổi ngoài giờ để chúng em có thể học tập rèn luyện ổi từ lý thuyết tới việc áp
dụng vào thực tế Nhóm em đã hoàn thành được đề tài đã chọn với tất cả sự nỗ lực Tuy
nhiên do còn thiếu hiểu biết trong lĩnh vực này, do bước đầu đi vào thực tế, tìm hiểu và xây dựng đồ án trong thời gian có hạn, nên khó tránh khỏi còn nhiều sai sót Chúng em rất mong nhận được sự quan tâm, thông cảm và những đóng góp quý báu của các thầy cô
để báo cáo này ngày càng hoàn thiện hơn
Sau cùng, em xin kính chúc các thầy cô trong Khoa Công Nghệ Thông Tin dồi dào sức
khoẻ, niềm tin đề có thể tiếp tục thực hiện sứ mệnh trồng người cao đẹp, truyền đạt kiến thức cho thế hệ mai sau
Một lần nữa em xin chân thành cảm ơn!
Trang 4DANH MUC TU VIET TAT VA KY HIEU
STT Từ viết tắt Y nghĩa
2 AR " Augmented Reality" (Tang cudng thy té)
3 OOP "Object-Oriented Programming"
4 JVM "Java Virtual Machine" (May ao Java)
5 AWT "Abstract Window Toolkit"
6 GUI “Graphical User Interface”
Trang 5
CHUONG 1: CO SO LY THUYET
1.1 Tổng quan về đề tài
1.1.1 Mô tả trò chơi
Trong Space Shooter, người chơi sẽ vào vai một phi công không gian, điều khiển một chiếc tàu vũ trụ mạnh mẽ, và tham gia vào cuộc chiến không gian gay cấn chống lại đội quân kẻ thù Mục tiêu của người chơi là tiêu diệt tất cả các kẻ thù, tránh va chạm và sông
sót càng lâu cảng tốt để đạt được điểm số cao nhất.Trò chơi mang lại trải nghiệm hành
động nhanh chóng với các cuộc chiến không gian đầy hấp dẫn Người chơi có thể di chuyển qua lại bằng các phím, bắn hạ kẻ địch bằng phím C
1.1.2 Lịch sử hình thành và phát triển của trò chơi
Trò chơi Space Shooter có một lịch sử hình thành và phát triển rất phong phú, bắt đầu từ những trò chơi areade đơn giản và phát triên thành các phiên bản phức tạp hơn trên nhiều nên tảng khác nhau
Những bước đầu (1960-1970): Trò chơi Spacewar! được tạo ra vào năm 1962 trên máy
tính PDP-I, là một trong những trò chơi điện tử đâu tiên trong lịch sử Nó là một trò chơi
không gian đầu tiên trong đó người chơi điều khiển các tàu vũ trụ để chiến đấu Sau đó, trò chơi Space Invaders, phát hành vào năm 1978, được coi là một trong những trò chơi Space Shooter nỗi tiếng nhất trong thập kỷ này, mở ra thời đại của thể loại này trên các máy arcade
Thời kỳ đỉnh cao (1980-1990): Trong thập kỷ 1980, thể loại Space Shooter trở nên phố biến trên các máy arcade và các hệ máy chơi game gia đình như Atari và Nintendo Các tựa game nồi tiếng như Galaxian (1979), Galaga (1981), và R-Type (1987) ra đời và gặt hái thành công lớn
Thời kỳ này cũng chứng kiến sự xuất hiện của các phiên bản Space Shooter trên các hệ máy tính cá nhan, nhu Space Quest, Wing Commander, va Star Control
Thời kỳ hiện đại (1990-nay): Với sự phát triển của công nghệ, trd choi Space Shooter da trở nên đa dạng và phong phú hơn, xuất hiện trên nhiều nền tảng khác nhau như console,
PC, di động, và cá VR
Các tựa game nổi tiếng như Gradius, Space Invaders Extreme, Geometry Wars, va Galaxy on Fire đã giúp thúc đây sự phát triên của thê loại này
Trang 6Ngoài ra, cộng đồng phát triển indie cũng đã tạo ra nhiều tựa game Space Shooter sang tạo và độc đáo, mang lại sự đa dạng và sức sông mới cho thê loại này
Trong cả lịch sử phát triển của mình, thê loại Space Shooter luôn giữ vững sức hút và tao
ra nhiêu trải nghiệm giải trí thú vị cho người chơi
1.13 Ung dụng và đỀ xuất cải tiễn trò chơi
Một số ứng dụng và đề xuất cải tiễn cho trò chơi Space Shooter có thể kê đến như: Ung dụng di động: Chuyên đổi trò chơi Space Shooter thành một ứng dụng di động dé
người chơi có thê thưởng thức trò chơi mọi lúc, mọi nơi
Tối ưu hóa giao diện người dùng cho màn hình cảm ứng và thiết bị di động
Chế độ chơi nhiều người chơi (Multiplayer): Thêm tính năng chế độ chơi đa người chơi
đề người chơi có thê thách đấu với bạn bè hoặc người chơi trên toàn thế giới
Cung cấp các chế độ chơi như PvP (Player vs Player) hoặc Co-op (hợp tác) để tăng tính cạnh tranh hoặc tính hợp tác trong trò chơi
Nâng cấp và tùy chỉnh tàu vũ trụ: Thêm hệ thống nâng cấp và tùy chỉnh tàu vũ trụ để
người chơi có thê cá nhân hóa trải nghiệm của mình
Cung cấp các loại vũ khí, bảo vệ và kỹ năng đặc biệt dé người chơi có thể lựa chọn va
phát triên theo hướng yêu thích của họ
Hình anh va Am thanh cải tiến: Cải thiện đồ họa và hiệu ứng hình ảnh để tạo ra trải
nghiệm hâp dân hơn với các cảnh vũ trụ sông động và đẹp mắt
Thêm các hiệu ứng âm thanh và nhạc nền phù hợp đề tạo ra không khí hứng khởi và căng thăng trong trò chơi
Cốt truyện phong phú: Bồ sung một cốt truyện sâu sắc và hấp dẫn để kích thích sự tò mò
và tương tác của người chơi
Tạo ra các nhân vật va thé giới vũ trụ độc đáo đề thúc đây trải nghiệm chơi game
Hỗ trợ VR (Thực tế ảo): Phát triển phiên bản hỗ trợ VR của trò chơi để mang lại trải nghiệm sông động và thú vị hơn cho người chơi
Tận dụng công nghệ VR để tạo ra cảm giác hấp dẫn và chân thực trong các trận chiến không gian
Những ứng dụng và đề xuất trên có thê giúp cải thiện và nâng cao trải nghiệm chơi game Spacc Shooter, đông thời tạo ra sự mới mẻ và hâp dân đôi với người chơi
1.2 Tổng quan về ngôn ngữ C Sharp
Trang 71.2.1 Giới thiệu về ngôn ngữ C Sharp
C# (C Sharp) là một ngôn ngữ lập trình đa mục đích được phát triển bởi Microsoft, C# là
phan khởi đầu cho kế hoạch NET của họ Nó ra đời vào những năm 2000 và đã trở thành
một trong những ngôn ngữ lập trình phô biến nhất trên thế giới Nó là một ngôn ngữ lập trình đa mục đích, phù hợp cho việc phát triển ứng dụng máy tính, ứng dụng web, ứng dung di déng va ca game Microsoft phat triển C# dựa trên C++ và Java C# được miêu tả
là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java
C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nỗi tiếng với các sản pham Turbo Pascal, Delphi, J++, WFC
1.22 Một số đặc trưng của ngôn ngữ C Sharp
Đơn giản: Đặc trưng đầu tiên của C# là loại bỏ những vấn đề phức tạo đã có trong Java
và C++ nhu macro, template, tính đa kế thừa, lớp cơ sở ảo (hay còn gọi virtual base class) Các cú pháp, toán tử, biêu thức và cả tính năng của C# khá tương đương lava và C++ song đã qua cải tiền nên đơn giản hơn nhiều
Hiện đại: C# sở hữu nhiều khả năng như xử lý ngoại lệ, tự động trong thu gom bộ nhớ, bảo mật mã nguồn, dữ liệu mở rộng Đây là tất cả những đặc điểm được mong chờ ở
một ngôn ngữ lập trình hiện đại
Hướng đối tượng: C# là một trong những ngôn ngữ được đánh giá là thuần hướng đôi tượng Nó sở hữu cả 4 tính chất quan trọng, đặc trưng là tính kế thừa, tính đóng gói, tính
trừu tượng và tính đa hình
Ít từ khóa: Một trong những đặc trưng cơ bản của C# là ít từ khóa Từ khóa được dùng trong ngôn ngữ này chỉ nhăm mục đích mô tả thông tin Tuy ít từ khóa song C# van rat
mạnh mẽ Lập trình viên có thê sử dụng nó đê thực hiện mọi nhiệm vụ
Mã nguồn mở: C# là một trong những ngôn ngữ lập trình mã nguồn mở, được phát triển, điều hành một cách độc lập với Microsoft Đây là một trong những nét độc đáo khiến ngôn ngữ này được biệt đên và ưa chuộng rộng rãi
Đa nền tảng: C# là ngôn ngữ được sử dụng trong lập trình trên nhiều nền tảng Các ứng dụng hoặc website được xây dựng bằng ngôn ngữ này có thê hoạt động tốt trên nhiều nền tang nhu Windows, Linux va Mac
Tiến hóa: C# vẫn đang được nâng cấp và cho ra mắt các phiên bản mới với nhiều tính
năng vượt trội và khả năng làm việc mạnh mẽ hơn Hiện C# có thê làm việc với console,
điện toán đám mây, phân mềm học máy ,
1.23 Uu điểm
C# có nhiều ưu điểm đáng chú ý, bao gồm:
Trang 8Lập trình hướng đối tượng (OOP): C# hỗ trợ lập trình hướng đối tượng, giúp tô chức mã nguồn một cách rõ ràng và dễ dàng bảo trì
An toàn kiêu dữ liệu (Type-saf): C# kiểm tra lỗi kiêu dữ liệu khi biên dịch, giúp tránh
được nhiều lỗi phố biến trong quá trình thực thi
Quan lý bộ nhé ty déng (Automatic Memory Management): Su dung Garbage Collector, C# giup quan lý bộ nhớ tự động, giảm bớt công việc của lập trình viên và tránh được rò rỉ
bộ nhớ
LINQ (Language Integrated Query): Hé tro LINQ giup truy van va xtr ly dé ligu mot cách dễ dàng và linh hoạt, tăng hiệu suất của ứng dụng
Đa nên tảng (Cross-platform): C# có thể chạy trên nhiều nền tảng khác nhau, bao gồm Windows, Linux và macOS thông qua NET Core, tạo ra ứng dụng da nên tảng
Đa luỗng (Multithreading): C# cung cấp hỗ trợ cho lập trình đa luỗng, giúp tận dụng tải nguyên máy tính hiệu qua va tăng hiệu suât của ứng dụng
Phát triển ứng dụng di động với Xamarin: Sử dụng Xamarin, bạn có thể sử dụng C# để phát triển ứng dụng di động cho cả iOS và Android, tạo ra ứng dụng di động đa nền tang
Cộng đồng lớn và hỗ trợ mạnh mẽ: C# có một cộng đồng lập trình viên lớn, nhiều tài liệu
hướng dân, thư vién va framework ho tro tir Microsoft và cộng đông, giúp tang toc quá trình phát triển ứng dụng
12.4 Nhược diém
Mặc dù C# là một ngôn ngữ lập trình mạnh mẽ và pho bién, nhưng cũng có một số nhược điểm cần lưu ý:
Phụ thuộc vào nền tảng Microsoft: C# được phát triển bởi Microsoft, do đó nó chủ yếu hỗ
trợ trên các hệ điều hành của Microsoft như Windows Mặc dù có thể chạy trên các nên
tảng khác như Linux và macOS thông qua NET Core, nhưng hỗ trợ không phải lúc nào cũng đồng đều
Tính đóng: C# được coi là một ngôn ngữ đóng, có nghĩa là nó không được công bồ theo tiêu chuẩn công cộng và không có nhiều quy định và sự kiểm soát như ngôn ngữ mã nguồn mở Điều này có thê gây khó khăn trong việc tùy chỉnh và thay đôi các phần của ngôn ngữ
Thời gian khởi động chậm: Ứng dụng C# thường có thời gian khởi động chậm hơn so với
một số ngôn ngữ khác nhự C++ hoặc Go, đặc biệt là khi sử dụng trong môi trường NET
Framework truyền thống
Trang 9Phy thudéc vao runtime environment (.NET Framework hoac NET Core): Dé chạy ứng dung C#, may tinh can cé runtime environment cia NET Framework hoac NET Core
cai dat Diéu nay có thể tạo ra một số vẫn đẻ liên quan đến việc triển khai và quản lý
phiên bản
Khả năng mở rộng và tùy chỉnh giới hạn: Do tính đóng và phụ thuộc vào công nghệ của Microsoft, việc mở rộng và tùy chỉnh một số tính năng của C# có thé gặp khó khăn so với các ngôn ngữ mã nguồn mở khác
125% Ứng dụng
Sau cùng, để có cái nhìn “trọn vẹn” về C# là gì, bạn cần biết về ứng dụng của nó Ngôn ngữ này có ứng dụng trên Windows, Web, Các thành phân, điêu khiến
Trên windows: C# với ữamework NET được dùng để tạo ra các ứng dụng trên Windows nhu Microsoft Office, Visual Studio, Skype, Photoshop,
Trên Web: C# hỗ trợ lập trình viên tạo các ứng dụng web nhờ sự hỗ trợ của asp.net Với
ngôn ngữ này, các ứng dụng có thê chạy mượt mà trên máy chủ
Thành phần, điều khiển: C# còn được ứng dụng trong xây dựng nhiều thành phần của máy chủ Đây là một trong các ứng dụng quan trọng của ngôn ngữ lập trình C#
Có thê thấy C# được ứng dụng rất rộng rãi trong lĩnh vực công nghệ Với sự cải tiến không ngừng nghi, ngôn ngữ này có tiềm năng rất lớn trong tương lai
1.3 Tổng quan về Unity
Unity là một nền tảng phát triển trò chơi và ứng dụng đa nền tảng Được phát triển bởi Unity Technologies, nền tảng này cho phép các nhà phát triển tạo ra các trò chơi, ứng dụng thực tế ảo (VR), thực tế mở rộng (AR), và nhiều sản phẩm tương tự trên nhiều nền tảng như PC, điện thoại di động, máy tính bảng và các thiết bị khác Unity cung cấp một giao diện người dùng đồ họa (GUT) trực quan, hỗ trợ việc phát triển bằng nhiều ngôn ngữ lập trình như C# và JavaScript, và có một cộng đồng lớn mạnh đề hỗ trợ và chia sẻ tài nguyên
Và chỉ với khoản tiền bỏ ra khá khiêm tốn (1.500 USD) là phiên bản pro đã nằm trong tay chúng ta, dĩ nhiên tại Việt Nam số tiền này vẫn là quá lớn nhưng thật may đã có phiên
ban Unity free hoặc bản dành cho học sinh, sinh viên Tuy nhiên ở bản free nhiều tính
năng quan trọng bị cắt giảm, nhưng đó không phải vẫn đề quá lớn nêu muốn phát triển một tựa game tầm trung Vào năm 2009 Unity nằm trong top 5 game engine tốt nhất cho việc sản xuất game với chỉ sau 4 năm phát triển Lượng tài liệu hướng dẫn Unity rất
phong phú Hơn thế, nó còn có sãn một cộng đồng cực lớn với diễn dan riêng Bất cứ
điều gì không hiểu chúng ta đều có thể hỏi và có được câu trả lời nhanh chóng, tận tâm Quá trình tạo địa hình cũng như truy xuất từ các phần mềm 3DSMax, Maya,
Cinema4D rất nhanh chóng Sức mạnh và sự tiện lợi của Unity là vô cùng lớn
9
Trang 10Một số điểm nôi bật về Unity như:
Dễ sử dụng: Unity cung cấp một giao diện người dùng đồ họa (GUD) trực quan, giup cac nhà phát triển dễ dàng tạo ra các trò chơi và ứng dụng mà không cần kiến thức sâu về lập trình
Đa nền tảng: Unity cho phép phát triển một lần và triên khai trên nhiều nền tảng, bao gồm 108, Android, Windows, macOS, Linux, game console va nhiều hơn nữa Cộng đồng lớn mạnh: Unity có một cộng đồng rộng lớn với hàng ngàn thành viên trên toàn thế giới Cộng đồng này cung cấp tài nguyên, hỗ trợ và giải đáp thắc mắc cho các nhà phat trién
Cửa hàng Asset: Unity Asset Store cung cấp hàng ngàn tài nguyên sẵn có như hình ảnh,
âm thanh, 3D models, script và công cụ khác để giúp nhà phát triển tăng tốc quá trình phát trién
Hỗ trợ C# và JavaScript: Unity hỗ trợ việc phát triển trò chơi và ứng dụng bằng C# và JavaScript, hai ngôn ngữ lập trình phô biến và dễ học
Thực tế ảo và Thực tế mở rộng: Unity là một trong những nên tảng phát triển hàng đầu cho các ứng dụng thực tế ảo (VR) và thực tế mở rộng (AR), với việc hỗ trợ các công nghệ như Oculus Rift, HTC Vive, Microsoft HoloLens va nhiều hơn nữa
Unity là một nền tảng phát triên mạnh mẽ với nhiều ưu điểm, nhưng cũng có một số
nhược điểm cần xem xét khi lựa chọn cho dự án phát triển như:
Hiệu suất không cao nhất: Trong một số trường hợp, Unity có thể không cung cấp hiệu
suất tối ưu nhất, đặc biệt là đối với các trò chơi hoặc ứng dụng có đồ họa phức tạp
Kích thước ứng dụng lớn: Ứng dụng được phát triển bằng Unity có thê có kích thước lớn hơn so với các ứng dụng phát triển bằng các công cụ khác
Phụ thuộc vào bên thứ ba: Sử dụng các tài nguyên từ Asset Store co thể tạo ra sự phụ
thuộc vào bên thứ ba, làm tăng nguy cơ về sự phụ thuộc và mỗi quan hệ giữa các thành
phan của dự án
Yêu cầu tài nguyên phần cứng: Một số ứng dụng phát triển bang Unity có thê đòi hỏi tài nguyên phần cứng cao, đặc biệt là khi xây dựng các trò chơi hoặc ứng dụng có đồ họa phức tạp
Và việc lựa chon Unity dé tiếp cạn với ngôn ngữ C# cũng là một lựa chọn tốt vì:
Dễ học và sử dụng: C# là một ngôn ngữ lập trình dễ học và sử dụng, đặc biệt là đối với những người mới bắt đầu trong lập trình
Phong phú và mạnh mẽ: C# là một ngôn ngữ mạnh mẽ với nhiều tính năng và thư viện sẵn có, giúp bạn tạo ra các tính năng phức tạp trong trò chơi của mình
Hỗ trợ tốt từ Unity: Unity hỗ trợ C# là một trong những ngôn ngữ chính đề phát triển trò
chơi Điều này có nghĩa là bạn có thể tìm kiếm và nhận được sự hỗ trợ từ cộng đồng lớn
của các nhà phát triển Unity
Tích hợp dễ dàng với Unity: Unity cung cấp một môi trường phát triên tích hợp cho việc
sử dụng C#, giúp bạn tạo ra trò chơi một cách hiệu quả và thuận tiện
10