Tải bản đầy đủ (.docx) (71 trang)

Báo cáo đồ án cách thức thiết kế nên một game và viết game “Bắn xe tăng” chạy trên Windows phone

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.37 MB, 71 trang )

MỞ ĐẦU
Research2guidance dự đoán thị trường ứng dụng cho điện thoại di động sẽ có tốc độ
tăng trưởng rất nhanh trong vòng một vài năm tới. Lợi nhuận sẽ tăng gấp 8 lần sau 5 năm, từ
1,95 tỉ USD năm 2009 lên 15,65 tỉ USD năm 2013.
Ngoài việc dự đoán mức tăng trưởng về lợi nhuận thì Research2guidance cũng dự đoán
về số người dùng smartphone trong 5 năm tới, yếu tố giúp thị trường ứng dụng cho di động
tăng trưởng. Theo đó, số người dùng smartphone sẽ tăng từ 100 triệu người năm 2009 lên 1 tỉ
người năm 2013.
Điện thoại thông minh phát triển mạnh ở Việt Nam đang được đánh giá là thiên đường
để cho các nhà phát triển ứng dụng di động.
Hệ điều hành Windows Phone là một hệ điều hành khá mới và có nhiều thú vị với thị
trường Việt Nam. Thị trường Windows Phone đang được phát triển rất rộng và tiềm năng. Các
ứng dụng trên nền Windows Phone cũng đang được chú trọng phát triển và đây sẽ là mảnh đất
màu mỡ cho các nhà phát triển ứng dụng cho dòng Smartphone.
Có một điều dễ dành nhận thấy là Việt Nam có thể là “mỏ” cho thị trường game di động
- với hơn 11 triệu thuê bao điện thoại và tốc độ tăng trưởng đang đạt mức khá cao. Đây thực sự
đây là một mảnh đất màu mỡ không chỉ cho các nhà cung cấp game nói riêng mà còn cho các
nhà cung cấp dịch vụ nội dung nói chung. Điểm đáng ghi nhận là các nhà cung cấp trò chơi
cho điện thoại đang cố gắng thu hút khách hàng bằng nhiều hình thức khác nhau trong đó có
việc cung cấp ngày càng nhiều trò có nội dung hấp dẫn với hình ảnh đẹp và âm thanh chất
lượng cao...
Là một sinh viên khoa công nghệ thông tin,em rất mong được tìm hiểu,tiếp thu và ứng
dụng những kiến thức mới về CNTT để vận dụng trong học tập cũng như công việc của mình.
Với sự giúp đỡ nhiệt tình của cô Hà Thị Thanh,em đã vận dụng những kiến thức mình đã được
học để tìm hiểu về cách thức thiết kế nên một game và viết game “Bắn xe tăng” chạy trên
Windows phone.
Mặc dù đã có những cố gắng, cùng với sự tận tình giúp đỡ chỉ bảo của cô Thanh, song
do thời gian và lượng kiến thức có hạn, cộng với việc khả năng đọc và dịch tài liệu tiếng anh
chưa tốt nên em vẫn chưa nghiên cứu được sâu. Em rất mong nhận được những nhận xét góp ý
cùng với sự giúp đỡ của các thầy cô và các bạn để đồ án của em được hoàn thiện hơn.


1


LỜI CẢM ƠN
Kính Thưa các thầy cô bộ môn Công nghệ phần mềm và cô Hà Thị Thanh giáo
viên hướng dẫn và các bạn học cùng khóa.
Đầu tiên, em xin gửi lời cám ơn chân thành đến toàn bộ thầy cô Khoa Công Nghệ
Thông Tin,bộ môn CNPM. Trong nhiều năm qua, thầy cô là những người thầy cô rất tận tâm
và ưu tú trong giảng dạy. Thầy cô đã giúp em rất nhiều trên con đường chinh phục miền tri
thức vô tận này.
Em xin cám ơn cô Hà Thị Thanh đã nhận trọng trách vất vả là giáo viên hướng dẫn cho
em trong suốt thời gian qua. Thành quả của em đạt được qua đề án là nhờ một phần không nhỏ
công sức của cô. Chúc cô được nhiều sức khỏe và thành công trên con đường cao cả mà cô đã
lựa chọn.
Một lần nữa, em xin cám ơn tất cả mọi người, chúc mọi người được dồi dào sức khỏe.
Chúc cho khóa học kết thúc tốt đẹp. Chúc cho Công nghệ thông tin Việt Nam mau chóng sánh
ngang cùng các cường quốc năm châu trên thế giới.
Thái Nguyên, tháng 06 năm 2014

2


LỜI CAM ĐOAN

Em xin cam đoan :
1 Những nội dung trong đồ án này là do em thực hiện dưới sự hướng dẫn trực
tiếp của cô Hà Thị Thanh.
2 Mọi tham khảo dùng trong đồ án đều được trích dẫn rõ ràng tên tác giả, tên
công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu

hoàn toàn trách nhiệm.
Sinh viên
Ngô Duy Khánh

3


MỤC LỤC
MỞ ĐẦU........................................................................................................................ 1
LỜI CẢM ƠN.................................................................................................................2
LỜI CAM ĐOAN...........................................................................................................3
CHƯƠNG 1 : WINDOWS PHONE 7, CÔNG NGHỆ SILVERLIGHT VÀ NỀN TẢNG XNA
........................................................................................................................................ 6
1. Windows Phone 7 và công nghệ Silverlight............................................................8
1.1 Giới thiệu..........................................................................................................8
1.2 Lịch sử các phiên bản phát triển của Windows Phone......................................9
1.3 Kiến trúc.........................................................................................................10
1.4 Vòng đời phát triển của 1 ứng dụng Windows Phone.....................................11
1.5 Giới thiệu công nghệ Silverlight.....................................................................11
1.5.1 Tổng quan....................................................................................................11
1.5.2 Silverlight là gì ?..........................................................................................12
2.Nền tảng XNA.......................................................................................................12
2.1 Tổng quan về XNA.............................................................................................12
2.1.1 XNA là gì ?..................................................................................................12
2.1.2 Tại sao nên sử dụng XNA ?.........................................................................12
2.2 Kiến trúc của XNA.............................................................................................13
2.3 Các thành phần trong XNA.................................................................................14
CHƯƠNG 2 : GIỚI THIỆU BÀI TOÁN ỨNG DỤNG “GAME BẮN XE TĂNG”.....17
2.1 Phát biểu bài toán................................................................................................17
2.1.1. Khảo sát hiện trạng.....................................................................................17

2.1.2. Xác định yêu cầu hệ thống :........................................................................18
2.1.3. Cốt truyện trò chơi......................................................................................20
2.2. Mô hình Usecase................................................................................................21
2.2.1. Sơ đồ Use-case............................................................................................21
2.2.2. Danh sách các Actor....................................................................................22
2.2.3. Danh sách các Use-case..............................................................................22
2.2.4. Đặc tả Use-case...........................................................................................23
CHƯƠNG 3 : THIẾT KẾ CHƯƠNG TRÌNH...............................................................33
3.1. Hồ sơ phân tích..................................................................................................33

4


3.1.1. Sơ đồ lớp.....................................................................................................33
3.1.2. Sơ đồ trạng thái:..........................................................................................37
3.2. Thiết kế dữ liệu..................................................................................................39
3.2.1. Mô tả cấu trúc file dùng để lưu trữ..............................................................39
3.2.2. Ví dụ về nội dung tập tin lưu trữ.................................................................39
3.3. Thiết kế kiến trúc...............................................................................................40
3.3.1. Kiến trúc hệ thống.......................................................................................40
3.3.2. Mô tả chi tiết từng thành phần....................................................................40
3.4. Thiết kế giao diện...............................................................................................42
3.4.1. Danh sách các màn hình..............................................................................42
3.4.2. Mô tả chi tiết mỗi màn hình........................................................................43
3.5. Giới thiệu Thuật toán tìm đường đi ngắn nhất A*..............................................47
3.6. Mô tả cây thư mục:............................................................................................49
KẾT LUẬN................................................................................................................... 45
PHỤ LỤC...................................................................................................................... 47
TÀI LIỆU THAM KHẢO.............................................................................................65


5


DANH MỤC HÌNH VẼ
Hình 1.1. Kiến trúc Windows Phone Application Platform...........................................10
Hình 1.2. Vòng đời phát triển của 1 ứng dụng Windows Phone....................................11
Hình 1.3. Cấu trúc của XNA.........................................................................................13
Hình 1.4. Pipeline Content............................................................................................14
Hình 1.5. Hệ trục tọa độ 2D..........................................................................................16
Hình 1.6. Hệ trục toa độ hệ thống..................................................................................16
Hình 2.1.Hình ảnh bản đồ game và vị trí sắp xếp các xe tăng.......................................18
Hình 2.2. Sơ đồ Use case game XE TĂNG...................................................................21
Hình 2.4. Sơ đồ Use case “Phát sinh bản đồ”................................................................24
Hình 2.5. Sơ đồ Use case “Phát sinh xe tăng địch”.......................................................25
Hình 2.6. Sơ đồ Use case “Xe tăng địch di chuyển”......................................................26
Hình 2.7. Sơ đồ Use case “Xe tăng địch bắn đạn”.........................................................27
Hình 2.8. Sơ đồ Use case “Di chuyển xe tăng mình”....................................................27
Hình 2.9. Sơ đồ Use case “Bắn đạn”.............................................................................28
Hình 2.10. Sơ đồ Use case “Phá hủy chướng ngại vật”.................................................29
Hình 2.11. Sơ đồ Use case “Bắn chết xe tăng địch”......................................................30
Hình 2.12. Sơ đồ Use case “Xem hướng dẫn”...............................................................31
Hình 2.13. Sơ đồ Use case “Thiết lập tùy chọn”...........................................................31
Hình 3.1. Sơ đồ lớp game XE TĂNG............................................................................33
Hình 3.2. Sơ đồ trạng thái lớp BẢN ĐỒ.......................................................................37
Hình 3.3. Sơ đồ trạng thái lớp VIÊN ĐẠN...................................................................37
Hình 3.4. Sơ đồ trạng thái lớp XE TĂNG.....................................................................38
Hình 3.5. Sơ đồ trạng thái lớp VẬT PHẨM..................................................................38
Hình 3.6. Sơ đồ kiến trúc hệ thống................................................................................40
Hình 3.7. Sơ đồ class GUI.............................................................................................40
Hình 3.8. Sơ đồ class BUS............................................................................................41

Hình 3.9. Sơ đồ class DTO............................................................................................42
Hình 3.10. Giao diện menu chính..................................................................................43
Hình 3.11. Giao diện chơi game....................................................................................44
Hình 3.12. Giao diện Thông tin.....................................................................................45
Hình 3.13. Giao diện Tùy Chọn....................................................................................46

6


Hình 3.14. Cây thư mục ứng dụng................................................................................49
Hình 5.1. Hướng dẫn tạo Project...................................................................................47
Hình 5.2. Chọn loại ứng dụng.......................................................................................47
Hình 5.3. Giao diện khi tạo xong Project......................................................................48
Hình 5.4. Mô tả control Image......................................................................................50
Hình 5.5. Mô tả control Button.....................................................................................50
Hình 5.6. Miêu tả control TextBlock.............................................................................51
Hình 5.7. Miêu tả control ProgressBar..........................................................................51
Hình 5.8. Miêu tả control Slider....................................................................................52
Hình 5.9. Giao diện ứng dụng.......................................................................................52

7


CHƯƠNG 1 : WINDOWS PHONE 7, CÔNG NGHỆ SILVERLIGHT VÀ NỀN
TẢNG XNA
1. Windows Phone 7 và công nghệ Silverlight.
1.1 Giới thiệu
Windows Phone 7 là thế hệ kế tiếp của dòng điện thoại chạy hệ điều
hành Microsoft Windows Mobile. Windows Phone 7 được phát triển dựa trên phần lõi là
Windows CE 7 giống Zune HD, trong khi các phiên bản trước lại dựa trên Windows CE 5.

Windows Phone 7 bắt đầu được ra mắt chính thức vào tháng 2/2010 ở triển lãm Mobile
World Congress diễn ra ở Barcelona, Tây Ban Nha. Đến tháng 10 cùng năm, CEO Steve
Ballmer của Microsoft ra mắt 10 thiết bị Windows Phone đầu tiên đến từ HTC, Dell, Samsung,
LG. Vài tuần sau, máy bắt đầu được bán ra ở Mỹ và Châu Âu. Tháng 5 cùng năm, Microsoft
tuyên bố hợp tác với một số nhà sản xuất khác là Acer, Fujitsu và ZTE.
Một cột mốc quan trọng của Windows Phone đó là sự hợp tác giữa Microsoft với Nokia
sau khi hãng điện thoại Phần Lan này quyết định không còn tập trung vào điện thoại Symbian
nữa. Kết quả của sự hợp tác này đó là dòng Nokia Lumia ra đời ở sự kiện Nokia World 2011.
Đến CES 2012, Nokia tiếp tục ra mắt hai máy Lumia mới nữa (mình sẽ đề cập ở phần sau).
Việc tích hợp các dịch vụ của Microsoft (Bing, Bing Maps, Windows Phone Marketplace,…)
lên thiết bị Nokia được cho là sẽ tạo nên lợi thế cạnh tranh cho Windows Phone với hai đối thủ
lớn hiện thời là iOS và Android.
Microsoft phát triển Windows Phone 7 dựa trên hai công nghệ Silverlight và XNA:
 Silverlight: một sáng kiến phía client dựa trên Windows Presentation Foundation (WPF)
đã tạo ra một sức mạnh chưa từng có cho các nhà phát triển website để tạo ra các giao diện
người dùng tinh vi với sự kết hợp của các control sẵn có, các kí tự chất lượng cao, các
vector graphic, media, animation và data binding có thể chạy trên đa platform và đa trình
duyệt.WP7 đã mang sức mạnh của Silverlight đến với các thiết bị mobile.
 XNA: là một game platform hỗ trợ cả 2 thể loại game 2D và 3D với kiến trúc game-loop
truyền thống.Mặc dù XNA được phục vụ chủ yếu cho việc phát triển game trên console
Xbox360 nhưng XNA cho phép các developer có thể dùng nó để phát triển trên PC hoặc
ZuneHD.
Tóm gọn lại Microsoft thiết kế Windows Phone 7 với ba tiêu chí chính:
 Design: End Users Come First (Có thể hiểu là chú trọng về cách dễ dùng nhất cho người
dùng).
 PlaftForm: Fun and Easy to build complelting Apps and Games.
 Hardware: Optermized and sandardized.

8



1.2 Lịch sử các phiên bản phát triển của Windows Phone




7.0.7004: phiên bản đầu tiên của Windows Phone 7.
7.0.7008: nâng cấp và cải thiện một vài điểm.
7.0.7390: bản cập nhật với tên mã NoDo, hỗ trợ mạng CDMA, copy và paste, tốc độ

chạy ứng dụng nhanh hơn, tích hợp Facebook sâu hơn.

7.0.7392: sửa các lỗi liên quan đến chứng nhận bảo mật.

7.0.7403: bản tiền nâng cấp để chuẩn bị bước sang một đợt nâng cấp lên.

7.10.7720: đây là Windows Phone 7.5 với tên mã Mango, được giới thiệu 2/2011. Các
tính năng mới được thêm vào như Internet Explorer 9 hỗ trợ đồ họa và chuẩn web tốt hơn,
Twitter tích hợp vào People Hub, chạy đa nhiệm cho các ứng dụng bên thứ ba bằng cách





tạm ngừng chúng.
7.10.7740: sửa lỗi Microsoft Exchange Server 2003 và cảnh báo hộp thư thoại.
7.10.8107: hỗ trợ kết nối LTE, sửa lỗi bàn phím bị biến mất và nhiều vấn đề khác.
7.10.8112: bản cho Lumia 900 và HTC Titan II của nhà mạng AT&T.
7.10.8773: còn gọi là Windows Phone 7.5 Refresh với tên mã Tango. Nhiều tính năng
mới xuất hiện như MMS tốt hơn, biểu tượng cho việc dò vị trí, xuất và quản lí danh bạ vô




SIM, hỗ trợ điện thoại giá rẻ với 256MB RAM và xung nhịp CPU chậm.
7.10.8779: sửa lổi, cải thiện và nâng cấp.

9


1.3 Kiến trúc
Windows Phone Application Platform kiến trúc được tạo thành từ bốn thành phần
chính:

Hình 1.1. Kiến trúc Windows Phone Application Platform

 Runtimes (Runtimes): Silverlight và khung XNA, cùng với Windows tính năng điện thoại
cụ thể, kết hợp để cung cấp một môi trường trưởng thành trong việc xây dựng an toàn, các
ứng dụng đồ họa phong phú.
 Tools (Công cụ): Visual Studio và Expression Blend, và các công cụ và tài liệu liên quan
của chúng, tạo ra một trải nghiệm phát triển hoàn chỉnh để nhanh chóng tạo ra ứng dụng,
gỡ lỗi, triển khai và cập nhật các ứng dụng.
 Cloud (Dịch vụ điện toán đám mây): Windows Azure, Xbox LIVE, thông báo dịch vụ,
và dịch vụ định vị, cùng với một loạt các dịch vụ web khác, cho phép các nhà phát triển để
chia sẻ dữ liệu qua các đám mây và lợi ích người tiêu dùng bằng cách cung cấp một trải
nghiệm liền mạch trên thiết bị bất cứ điều gì họ đang sử dụng. Kết nối với các dịch vụ web
của bên thứ ba cũng hỗ trợ đầy đủ.
 Portal Services (Dịch vụ cổng thông tin): điện thoại Windows Marketplace cung cấp các
dịch vụ mạnh mẽ cho phép các nhà phát triển đăng ký, xác nhận, và thị trường ứng dụng
của họ.


10


1.4 Vòng đời phát triển của 1 ứng dụng Windows Phone

Hình 1.2. Vòng đời phát triển của 1 ứng dụng Windows Phone

1.5 Giới thiệu công nghệ Silverlight
1.5.1 Tổng quan
Microsoft Silverlight là một công nghệ đa nền, đa trình duyệt dựa trên nền .NET dùng
để xây dựng và phát triển một thế hệ ứng dụng Web và thiết bị mới, đầy tính tương tác và hỗ
trợ tối đa về media. Hiện nay Silverlight đã có 5 phiên bản dùng phát triển ứng dụng bằng ngôn
ngữ Javascript và bằng các ngôn ngữ .NET framework như C# hay VB.NET ,.... Bên cạnh đó
công nghệ Silverlight còn được hỗ trợ bởi ngôn ngữ đánh dấu XAML đầy sức mạnh trong việc
thể hiện giao diện người dùng. Có thể nói công nghệ Silverlight đã thống nhất được tất cả các
khả năng của server, Web và ứng dụng desktop, của code .NET, của ngôn ngữ hình thể và ngôn
ngữ truyền thống và sức mạnh của Windows Presentation Foundation (WPF). Để cuối cùng
tạo ra một ứng dụng mà người dùng phải thấy thích. Một số người cho rằng công nghệ
Silverlight của Microsoft sẽ là “sát thủ” của Adobe Flash. Nhưng hiện tại thì chưa thể biết được
điều gì, vì cả hai công nghệ này đều được sử dụng bằng plug-in của trình duyệt, cả hai đều hỗ
trợ đồ họa vector, âm thanh, phim ảnh, animation và ngôn ngữ script. Dù người phát triển ứng
dụng là người phát triển web hay người thiết kế đồ họa thì Silverlight đều tạo

11


điều kiện tốt nhất để người đó có thể phát huy tối đa khả năng của mình. Hiện nay Silverlight
đang là công nghệ hot trong thế giới web. Đây là một công nghệ khá tốt của Microsoft trong
việc thiết kế và phát triển các dự án web. Vì vậy có khả năng nó sẽ phát triển mạnh hơn nữa.
1.5.2 Silverlight là gì ?

Silverlight là một công nghệ đa nền tảng, đa trình duyệt được đưa ra bởi Micrososft,
cho phép xây dựng các ứng dụng trên web (không phụ thuộc vào trình duyệt) và tương tác với
Server. Silverlight cung cấp một mô hình lập trình mềm dẻo và đồng nhất, nó hỗ trợ Ajax,
Python, Ruby và các ngôn ngữ lập trình .Net như C#, Visual basic... Khả năng đa phương tiện
của Silverlight thể hiện ở mức độ truyền tải âm thanh và hình ảnh chất lượng cao một cách
nhanh chóng và hiệu quả trên tất cả các trình duyệt (Internet Explorer, Firefox, Safari,
Opera...). Điểm mạnh của Silverlight đó là cung cấp những thuộc tính thiết kế giao diện, tạo
những hiệu ứng (hoạt ảnh) một cách dễ dàng.

2.Nền tảng XNA
2.1 Tổng quan về XNA
2.1.1 XNA là gì ?
XNA là một kiểu chơi chữ, nó viết tắt cho câu “Xna’s Not an Acronym”. Nó là một bộ
công cụ chạy trên môi trường runtime được cung cấp bởi Microsoft. XNA đã đơn giản hóa cho
công việc phát triển và quản lý game trên máy tính, nó giải tỏa cho các nhà phát triển game
khỏi những dòng code cứng nhắc lặp đi lặp lại và mang đến một diện mạo khác của việc sản
xuất game vào trong một hệ thống đơn lẻ bằng cách giúp họ viết game theo một khuôn dạng
có sẵn.
2.1.2 Tại sao nên sử dụng XNA ?
Bạn có thể sử dụng XNA để lập trình game cho XBOX360, Zune, WindowsPhone 7,
PC, XNA cung cấp cho người lập trình sẵn các công cụ thiết kế game 2D và 3D, đầy đủ các
thành phần đồ họa cần thiết kế game.
Ngoài ra, XNA đã cấu hình sẵn thích hợp với các loại môi trường nhất định, vì thế
người lập trình không cần phải tốn công sức để thiết lập cấu hình cho game.
Được viết trên nền C#, một ngôn ngữ hướng đối tượng rất dễ tiếp cận, nên rất dễ dàng
cho người mới bắt đầu vào con đường làm game.
Bên cạnh đó, XNA xây dựng cấu trúc file riêng để có thể bảo đảm được mã nguồn các
tài nguyên của lập trình viên như hình ảnh, model 3D, âm thanh.

12



2.2 Kiến trúc của XNA
Cấu

Initialize( )

trúc

LoadContent( )

Draw(gameTime)

Update(gameTime)
E
n
d
?
UnloadContent( )

chung:

Hình 1.3. Cấu trúc của XNA

Mỗi game bao gồm việc chuẩn bị môi trường mà game sẽ chạy. Chạy game trong một
vòng lặp cho đến khi game kết thúc khi gặp một điều kiện nào đó, và sau đó môi trường sẽ
được là sạch như lúc bắt đầu.
Đây là cấu trúc một game đơn giản bao gồm cả vòng lặp game:
 Hàm Initialize( ): Đây là hàm khởi tạo các giá trị khởi đầu của class game. Nếu ta có các
khởi tạo về input thì nên đặt vào trong hàm này.

 Hàm Load Content( ): Đây là hàm dùng để load những nội dung của game như: Imagie,
Sprite, Sound, Model, … Hàm này sẽ được thực hiện sau hàm Initialize vì thế các tài
nguyên sẽ được load thông qua Pipeline Content.

13


 Hàm Update( gameTime):
 Đây là hàm dùng để thực hiện xử lý các nội dung, hành động game, các Input từ ngoài
nhận vào.
 Ngoài ra, ở hàm này nó còn thực hiện các tương tác, va chạm, điều khiển nhân vật.
 Đây là phần chính của game, điều khiển mọi hoạt động, còn được gọi là bộ não của game.
 Hàm Draw (gameTime):
 Đây là một hàm không kém phần quan trọng của game. Nếu update là bộ não, linh hồn của
game, thì Draw là hàm tạo nên vỏ bền ngoài của game, nó làm cho ta thấy được vẻ đẹp của
game.
 Đây là hàm dùng để vẽ các hình ảnh trong game, hiển thị game ra màn hình đối với người
chơi, nó sẽ được vẽ theo thời gian gameTime.
 Hàm UnloadContent( ): Hủy tất cả các tài nguyên, dọn dẹp bộ nhớ.
 Pipeline Content:
Hình
1.4.

Pipeline Content

Là một trong những đặc điểm đáng chú ý nhất mà XNA mang lại cho bạn, bởi lẽ nó làm
đơn giản hóa cách bạn xây dựng game hoặc tạo ra sự thỏa thuận giữa những khác biệt trong
nội dung của từng công cụ. Đây là nơi lưu trữ các tài nguyên game, nó đã được mã hóa và biên
dịch cùng với game. Từ đó ta có thể thông qua Content mà có thể liên kết đến những tài
nguyên mà ta cần hiển thị.


2.3 Các thành phần trong XNA
 Sprite: Một sprite là một bức ảnh 2D có thể điều khiển độc lập từ phần bên ngoài của cảnh
game. Điều kiện sử dụng thường mô tả một bức ảnh nào đó trên lớp sử dụng bằng cách thể
hiện bức ảnh đó trên màn hình của game (nó bao gồm các thuộc tính như là vận tốc, vị trí,
chiều dài, chiều rộng, và v.v)… Máy tính luôn vẽ bức ảnh theo hình chữ nhật, thường sử

14


dụng bao quanh một sprite kể cả khi hình đó trong suốt, nó được cung cấp một khoảng
trống tạo ra ảo giác của một hình không phải hình chữ nhật. Thành phần “sprite hoạt hình”
được xem như một sprite có nhiều những bức ảnh thay đổi một cách liên tục một cách xác
định trước trong một khoảng thời gian xác định ( điều đó tạo ra ảo giác rằng sprite đang
chuyển động). Như là một người đang đi bộ hay một bánh xe đang quay tròn.
 Texture: là những bức ảnh 2D được load vào mô hình 3D nào đó, nó bao phủ và nằm trên
bề mặt của mô hình 3D và dùng để làm đẹp cho cảnh trong game. Có thể sử dụng texture
để giúp tạo ảo giác về một vật có đồ họa chi tiết khi một bức ảnh sẽ bao một mô hình 3D
đơn giản.
 Billboarch (Bảng yết thị): Đây là một thành phần trong thế giới 3D cũng sẽ đại diện một
texture vẽ bản đồ vào trong một máy bay đặc biệt mà luôn thẳng góc tới trục camera. Sử
dụng 3D như những hình ảnh trong billboarding là một kỹ thuật có hiệu quả để tạo ra
những thành phần trò chơi như những cái cây, một con đường, hoặc một ngọn đuốc trong tường mà không có nhu cầu để tạo ra những mô hình có tính chi tiết cao. Sự cho phép này
trình bày chi tiết cảnh vật với sức mạnh xử lý.
 Background (Nền): Một cảnh trong game 2D là một hình ảnh nền với nhiều sprites trình
bày trên nó. Khi 1 hình nền là 1 hình ảnh tĩnh, bạn có 1 hình nền cuộn.Nó là đặc điểm
chính trong các trò chơi được gọi là các thanh cuộn. Nó cũng đề cập đến parallax scrolling,
một kĩ thuật cuộn đặc biệt trong chò trơi 2D có nhiều hơn 1 hình nền cuộn với tốc độ cuộn
khác nhau, cái mà cung cấp những ảo ảnh của môi trường 3D. Ví dụ: Trong khi nhân vật
trong game chuyển động qua trái, thì những cái cây và những bụi cây đằng sau nó sẽ

chuyển động ngược hướng với nhân vật với tốc độ bằng tốc độ di chuyển của người chơi,
những ngọn núi xa dần và những đám mây trên bầu trời cũng sẽ di chuyển.
 Tiles: là những hình ảnh nhỏ được sử dung để biên soạn những hình ảnh lớn hơn, chúng
thường được liên kết lại với nhau trên nền thông thường đề tạo ra những platform game
khác nhau cùng từ những hình ảnh cơ bản .Ví dụ:Trong map game, dùng tiles đề xây dựng
địa hình, chướng ngại vật, trong game nhập vai, Tiles được sử dụng để cung cấp một cấp
độ của nhân vật để đáp ứng 1 trong số các điều kiện nâng cấp nhân vật, vũ khí…

2D và hệ thống hệ trục tọa độ:

15


Hình 1.5. Hệ trục tọa độ 2D

Hệ trục tọa độ oxy hệ thống:

Hình 1.6. Hệ trục toa độ hệ thống

Cách di chuyển Sprite trên hệ tọa độ:
Khi tạo 1 game 2D là mình làm việc trực tiếp trên màn hình có hệ trục tọa độ Oxy, do
đó di chuyển sprite là điều khá đơn giản, tất cả những gì cần làm là vẽ sprite trên những vị trí
khác nhau, bằng cách thay đổi tọa độ X sẽ làm cho sprite di chiểu sang trái hay phải, thay đổi
tọa độ Y giúp nó di chuyển lên trên hay xuống dưới hoặc giữ lại ở gốc tọa độ (0,0) nó sẽ ở phía
đỉnh bên trái của cửa sổ game.

16


CHƯƠNG 2 : GIỚI THIỆU BÀI TOÁN ỨNG DỤNG “GAME BẮN XE

TĂNG”
2.1 Phát biểu bài toán
2.1.1. Khảo sát hiện trạng

Nhu cầu thực tế của đề tài
Game “Xe tăng” là một trong những game rất hay và đến bây giờ vẫn còn hấp dẫn đối
với nhiều người. Tuy có rất nhiều game hiện nay dựa trên game của Battle City nhưng lại
không hay bằng bản cũ.
Ban đầu game được Namco sản xuất cho các hệ máy Arcade với tên Tank Battalion, thế
nhưng game này chỉ chơi được 1 người. Khi chuyển sang NES, game được đổi tên thành
Battle City, cải thiện về mặt đồ họa, đặc biệt là bổ sung thêm 2 người chơi.
Game còn được port sang hệ máy Gameboy. Về sau có rất nhiều phiên bản mới hơn do
fan làm bổ sung nhiều chức năng hơn, thậm chí hiện nay vẫn có nhiều game bắn xe tăng trên
PC phỏng theo game này.

Các phần mềm cùng loại hiện có
Game “Battle City” của hãng NES.
Game xe tăng trên hệ máy Gameboy …

Những hạn chế trong những phần mềm hiện có
“Battle City” của hãng NES

Game xe tăng trên hệ máy
Gameboy

Cách chơi

Đơn giản

Đơn giản


Đồ họa, âm thanh

Chưa đẹp, không sinh động

3D, sinh động

Cảm nhận

Nhiều người chơi, game kinh điển

Giới hạn người chơi

Trí tuệ nhân tạo

Còn đơn giản

Còn đơn giản

Bảng 2.1. So sánh các phần mềm game Xe tăng hiện nay

17


Em đã và sẽ cố gắng khắc phục các nhược điểm của các phần mềm cùng loại hiện có.
Ngoài ra, em đã cố gắng xây dựng thêm một số tính năng riêng biệt để trò chơi thêm
đặc sắc.
Về phần áp dụng thuật toán tìm đường ngắn nhất A* áp dụng cho xe tăng địch, em sẽ
cố gắng xây dựng một cách tốt nhất có thể. Và đây là phần em chú trọng phát triển.
2.1.2. Xác định yêu cầu hệ thống :

* Phần mềm trò chơi “Xe tăng” gồm các chức năng chính sau:

Khởi tạo:
- Hệ thống sẽ phát sinh ra bản đồ và sắp xếp các loại gạch, các chướng ngại vật … với các vị
trí khác nhau.
- Hệ thống cũng sẽ cho phát sinh các xe tăng địch ở các vị trí khác nhau, chúng có mục tiêu là
bắn chết đại bàng của quân mình.
- Một bản đồ cơ bản được bố trí như sau:

Hình 2.1.Hình ảnh bản đồ game và vị trí sắp xếp các xe tăng

18


(trích dẫn từ trang web : />
Di chuyển xe tăng mình:
- Người chơi chạm vào một điểm trên màn hình , xe tăng ta sẽ tự động xoay đến hướng
đó, sự kiện này dùng để xe tăng đổi hướng để di chuyển.
- Người chơi chạm và kéo giữ xe tăng về một hướng nào đó , xe tăng sẽ di chuyển đến
hướng đó cho đến khi người chơi thả tay ra.
- Xe tăng mình sẽ được di chuyển từng bước trên bản đồ.
- Nếu gặp chướng ngại vật hoặc xe tăng địch chắn đường thì không thể di chuyển được,
phải chọn hướng khác di chuyển.

Bắn đạn:
- Người chơi dùng phím tròn bên phải màn hình chơi để bắn đạn.
- Mỗi lần chỉ có thể bắn ra 1 viên đạn.
- Số lượng đạn không bị giới hạn đối với xe tăng mình.
- Nhiệm vụ của người chơi là bắn chết tất cả xe tăng của địch và bảo vệ đại bàng không
cho xe tăng địch bắn chết đại bàng.


Xe tăng địch di chuyển và bắn đạn:
- Xe tăng của địch sẽ tự động được phát sinh, di chuyển và bắn đạn.
- Mọi hoạt động của xe tăng địch đều được tự động.
- Xe tăng địch sẽ tự động tìm đường ngắn nhất đi đến đại bàng để bắn chết đại bàng của
quân ta.

Xem hướng dẫn:
- Người chơi có thể xem hướng dẫn cách chơi game, cách cấu hình game và các thông tin
liên quan khác.

Thiết lập tùy chọn:
- Người chơi có thể tùy chỉnh các thông số trò chơi như âm thanh, cấu hình xe tăng của
mình.

19


2.1.3. Cốt truyện trò chơi
Ở đất nước RoSoft xa xôi, có một ngôi làng mang tên là KiA. Ngôi làng này được bảo
vệ một vật rất linh thiêng, đó là tượng đại bàng. Bức tượng này đã đem lại cuộc sống ấm no,
bình yên và hạnh phúc cho ngôi làng suốt thời gian dài. Biết được điều đó, tên quái vật CeDes
hung tợn đã đem đạo quân xe tăng của chúng tấn công ngôi làng với mục đích đập vỡ bức
tượng đại bàng linh thiêng, nhằm cai trị ngôi làng KiA. Trong lúc đó, chàng thanh niên Asus
đã lãnh đạo người dân trong làng đấu tranh chống lại thế lực của tên quái vật. Chàng đã dùng
chiếc xe tăng mà cha chàng để lại trước khi mất để chống lại tên CeDes gian ác. Với tài năng
và sự thông minh của mình, chàng quyết tâm giữ cho bức tượng đại bàng được an toàn để bảo
vệ cho người dân trong làng. Bạn sẽ phải hóa thân thành chàng trai Asus để điều khiển chiếc
xe tăng và tiêu diệt tất cả bọn lính của tên quái vật. Mục tiêu cao nhất là bảo vệ được bức
tượng đại bàng – vận mệnh của ngôi làng.


20


2.2. Mô hình Usecase
2.2.1. Sơ đồ Use-case

Hình 2.2. Sơ đồ Use

case game XE TĂNG

21


2.2.2. Danh sách các Actor
Tên Actor
Người chơi
2.2.3. Danh sách các Use-case
STT
1

Tên Use-case
Vào trò chơi

2

Phát sinh bản đồ

3


Phát sinh xe tăng địch

4

Xe tăng địch di chuyển

5

Xe tăng địch bắn đạn

6

Di chuyển xe tăng mình

7

Bắn đạn

8

Phá hủy chướng ngại vật

9

Bắn chết xe tăng địch

10

Xem hướng dẫn


11

Thiết lập tùy chọn

Ý nghĩa / Ghi chú
Người điều khiển toàn bộ trò chơi

Ý nghĩa / Ghi chú
Use case giúp người chơi bước vào trò chơi chính
thức
Use case hệ thống phát sinh ra bản đồ của từng
màn chơi
Use case hệ thống phát sinh ra xe tăng của quân
địch
Use case làm cho xe tăng của địch có thể tự động
di chuyển
Use case làm cho xe tăng của địch có thể tự động
bắn ra đạn
Use case giúp người chơi có thể di chuyển xe tăng
của mình
Use case giúp xe tăng của người chơi bắn đạn để
tiêu diệt xe tăng địch
Use case khi người chơi bắn vào chướng ngại vật,
chướng ngại vật sẽ bị phát hủy
Use case khi người chơi bắn vào xe tăng địch, xe
tăng địch sẽ bị chết
Use case giúp người chơi xem cách chơi trò chơi,
hướng dẫn chơi trò chơi.
Use case giúp người chơi có thể thay đổi thiết lập
về âm thanh, hình ảnh …


22


2.2.4. Đặc tả Use-case

Use-case “Vào trò chơi”
Hình 2.3. Sơ đồ Use case “Vào trò chơi”



Tóm tắt: Use case giúp người chơi bước vào trò chơi chính thức.
 Các dòng sự kiện chính:
B1 : Người chơi nhấn vào nút “Chơi game”.
B2 : Hệ thống sẽ đưa người chơi bước vào trò chơi chính thức và khởi tạo một số thông số
mặc định của trò chơi.
 Các dòng sự kiện khác: Nếu người chơi không nhấn vào nút Chơi game thì không thể
thực hiện Use case.
 Các yêu cầu đặc biệt: Yêu cầu người chơi nhấn vào nút Chơi game.
 Trạng thái hệ thống khi bắt đầu thực hiện Use-case:Yêu cầu người chơi nhấn vào nút
Chơi game.
 Trạng thái hệ thống sau khi thực hiện Use-case: Người chơi bước vào trò chơi chính
thức.
 Điểm mở rộng: Không có.

23


Use-case “Phát sinh bản đồ”


Hình 2.4. Sơ đồ

Use case “Phát
sinh bản đồ”

 Tóm tắt: Use case hệ thống phát sinh ra bản đồ của từng màn chơi.
 Các dòng sự kiện chính:
B1 : Người chơi nhấn vào nút “Chơi game”.
B2 : Hệ thống sẽ phát sinh ra bản đồ của màn chơi hiện tại.
B3 : Bản đồ gồm có : các chướng ngại vật, xe tăng của người chơi, đại bàng …
 Các dòng sự kiện khác: Nếu người chơi không nhấn vào nút Chơi game thì không thể
thực hiện Use case.
 Các yêu cầu đặc biệt: Yêu cầu người chơi nhấn vào nút Chơi game.
 Trạng thái hệ thống khi bắt đầu thực hiện Use-case: Yêu cầu người chơi nhấn vào nút
Chơi game.
 Trạng thái hệ thống sau khi thực hiện Use-case: Bản đồ trò chơi sẽ được hiển thị lên.
 Điểm mở rộng : Không có.

24


Use-case “Phát sinh xe tăng địch”

Hình 2.5. Sơ đồ Use case “Phát sinh xe tăng địch”

 Tóm tắt: Use case hệ thống phát sinh ra xe tăng của quân địch .
 Các dòng sự kiện chính:
B1 : Người chơi nhấn vào nút “Chơi game”.
B2 : Hệ thống sẽ phát sinh ra các xe tăng của quân địch tại các vị trí ngẫu nhiên trên bản đồ
trò chơi.

 Các dòng sự kiện khác: Nếu người chơi không nhấn vào nút Chơi game thì không thể
thực hiện Use case
 Các yêu cầu đặc biệt: Yêu cầu người chơi nhấn vào nút Chơi game.
 Trạng thái hệ thống khi bắt đầu thực hiện Use-case: Yêu cầu người chơi nhấn vào nút
Chơi game.
 Trạng thái hệ thống sau khi thực hiện Use-case: Xe tăng của quân địch sẽ được phát
sinh ra tại các vị trí ngẫu nhiên trên bản đồ trò chơi.
 Điểm mở rộng: Không có.

25


×