1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Nghiên cứu và phát triển game với công nghệ XNA

79 288 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 79
Dung lượng 1,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương 3: mô tả nội dung của dòng game sẽ được xây dựng trong đề tài, với thể loại game được lựa chọn là game chiến lược bao gồm các thành phần trong game, logic thể hiện trong game giữ

Trang 1

tiếp sức cho sự ra đời của các game có đồ họa đẹp mắt và âm thanh sống động Ngành công nghiệp game mang lại những lợi nhuần khổng lồ cho các hãng sản xuất

Nội dung của đề tài thực hiện bao gồm việc tìm hiểu công nghệ làm game trên XNA

framework, đưa ra các mô tả về dòng game của dòng game chiến lược thời gian thực Đồng

thời, đề tài cũng nêu và đưa ra các giải pháp cho các vấn đề phát sinh trong quá trình thực

hiện một ứng dụng game trên dòng game chiến lược này Đe tài không dừng lại ở mức xây dựng một ứng dụng game cụ thể, mà xây dựng một dòng game, trong đó bao gồm cả việc

xây dựng các công cụ hỗ trợ cho việc phát triển dòng game này, bao gồm công cụ xây dựng bản đổ vùng chiến sự, công cụ giúp chuẩn hóa tài nguyên

Nội dung đề tài bao gồm 6 chương:

Chương 1: Mở đầu

Chương 2: XNA framework và XNA Game Studio

Chương 3: Một số vấn đề và giải pháp về đồ họa 2D trong game với XNA

Chương 4: Một số vấn đề và giải pháp về việc xử lý trong game Chương 5: Kiến

trúc game Chương 6: Kết luận

Trang 2

1.1 Tồng quan 1

1.2 Giới thiêu XNA 2

1.3 Mục tiêu đề tài 2

1.4 Nôi dung đề tài 3

Chương 2 XNA framework và XNA Game Studio 4

2.1 Giới thiêu 4

2.2 Kiến trúc XNA và các trạng thái xử lý trong trò chơi 4

2.2.1 Kiến trúc XNA 4

2.2.2

Quản lý các xử lý trong trò chơi 5

2.2.3

Quản lý tài nguyên trong XNA 6

2.2.4 Các thiết bi tương tác 7

Chương 3 Một số vấn đề và giải pháp về đồ họa 2D trong game với XNA 8

3.1 Load hình ảnh từ các tải nguyên đồ hoa và nap vào ứng dung game 8

3.2 Vẽ hình ảnh và các thống tin dang chuỗi ra màn hình 9

3.3 Xây dưng các màn hình nhâp liêu, nút bấm và menu 10

Chương 4 Môt số vấn đề và giải pháp về viẽc xử lý trong game .1

2 4.1 Xây dụng bản đồ 12

4.2 Xác đinh các ô thuộc vùng Viewport 13

4.3 Thể hiên bản đồ qua Viewport 15

4.4 Thể hiên các đối tuơng thuôc vùng Viewport 16

4.5 Cuôn và di chuyển Viewport 18

Trang 3

Xử lý tấn công của quân lính 23

4.9 Vấn đề khai thác tài nguyên 25

4.10 Hiệu ứng âm thanh 26

4.11 Minimap 27

4.12 Hiển thi thông tin Công trình Quân lính Đôi chơi trên menu game■■■■ 28 4.13 Xử lý xây dựng Công trình 29

4.14 Xử lý mua quân lính 30

4.15 Bổ sung đối tương động 31

4.16 Thưc hiên hiêu ứng đồ hoa particle cho đòn tấn công từ cácquân lính 32 4.17 Mở rông cho người chơi thông minh 33

Chương 5 Kiến trúc game 36

5.1 Tổng quan 36

5.2 Sơ đồ lớp môt số thành phần chính trong game 37

5.2.1 Sơ đồ lớp giao diên 37

5.2.2 Sơ đồ lớp xử lý 39

Chương 6 Kết luân 43

6.1 Các két quả đạt được 43

6.1.1 ứng dụng game được xây dựng 43

6.1.2 Công cu xây dưng bản đồ vùng chiến sư - Map editor 45

6.1.3 Công cu chuẩn hổa tài nguyên hình ảnh - ResGenerator 47

Trang 4

A.1 Trân chiến 49

A.2 Nguời chơi 49

A3 Mỏ tài nguyên 51

A4 Công trình 51

A5 Quân lính 54

A6 Công nghệ 57

A7 Xây dụng công trình 57

A8 Mua quân lính từ các công trình 58

A9 Tấn công đối phuơng 58

A 10 Khai thác tài nguyên 59

Phu lue B Các tiên ích hỗ trơ tùy biến game 60

B l ứng dụng chuẩn hóa tài nguyên 60

B.l.l Giới thiêu 60

B.1.2 Mô tả ứng dung 60

B.1.3 Cấu trúc các tâp tin, thu mue input 63

B.1.4 Cấu trúc các tâp tin, thu mue output 64

B.2 ứng dụng hỗ trợ tao bản đồ 66

B.2.1 Mô tả ứng dụng 66

B.2.2 Kỹ thuât dung bản đồ 67

Trang 5

Hình 2.3 Sơ đồ luồng xử lý của ứng dụng vái XNA framework 6

Hình 2.4 Qui trình serialize hổa tài nguyên 7

Hình 3.1 Môt panel trong ứng dung game 11

Hình 4.1 Mô tả cách lát bản đồ 13

Hình 4.2 Trường hạp lát map không hợp lệ 13

Hình 4.3 Trường hạp lát map hạp lệ 13

Hình 4.4 Cách vẽ Viewport 14

Hình 4.5 Cách lát các ô hình ảnh rời rac lẽn bản đồ 15

Hình 4.6 Cách xác đinh các đối tương đươc vẽ ra màn hình 18

Hình 4.7 Tọa đô của góc trái trên vùng Viewport thay đổi khi cổ tín hiệu input 19

Hình 4.8 Tâp các hình ảnh mô tả hành đông của quân lính 21

Hình 4.9 Di chuyển quân lính theo từng ô 22

Hình 4.10 Minimap 28

Hình 4.11 Sơ đồ luồng xử lý phát sinh đối tương đông 32

Hình 5.1 Kiến trúc game 36

Hình 5.2 Các đối tượng hỗ trạ vẽ bản đồ 37

Hình 5.3 Các đối tương trên bản đồ 38

Hình 5.4 Môt số đối tương trung chuyển dữ liêu chính 39

Hình 5.5 Môt số đối tương đoc ghi dữ liêu chính 40

Trang 6

Hình 6.1 Màn hình game chính 44

Hình 6.2 Các quân lính và hiệu ứng trên màn hình game chính 45

Hình 6.3 Bản đồ của game chính 46

Hình 6.4 Màn hình của công cu hỗ trơ dưng giao diên 46

Hình 6.5 Màn hình chính ứng dung Resource Generator 47

Hình 6.6 Màn hình chính ứng dụng chinh sửa tài nguyên ảnh 47

Hình A.7 Công trình trong game 52

Hình A.8 Quá trình xây dựng công trình 53

Hình A.9 Sơ đồ logic xây dưng công trình 53

Hình A.10 Các công trình trong game 54

Hình A.ll.Môtsố quân lính trong game 54

Hình A.12 Các quân lính đánh nhau 56

Hình A.13 Các loai quân lính trong game 57

Hình A.14 Môt số loai công nghê trong game 57

Hình B.15 Giao diên chính ứng dung 61

Hình B.16 Màn hình chính dang thu nhỏ 62

Hình B.18 Màn hình của ứng dụng hỗ trợ dựng bản đồ 66

Hình B.19 Các ô bản đồ được chia thành nhỏm theo địa hình 67

Hình B.20 Ố đươc chon ngẫu nhiên đầu tiên 68

Hình B.21 ■ Ố bản đồ phù hơp với ô số 1 ở hưởng 4 69

Hình B.22 Ố bản đồ phù hơp với ô số 1 ở hưởng 3 69

Trang 8

Bảng 5.2 Các đối tương trên bản đồ 39

Bảng 5.3 Một số đối tưạnsosotrung chuyển dữ liệu chính 39

Bảng 5.4 Một số đối tượng đọc ghi dữ liệu chính 40

Bảng 5.5 Đối tương xử lý tính toán chính cho bản đồ 41

Bảng 5.6 Các đối tương xử lý cho thành phần Factory 41

Trang 9

MỞ đầu

JễfNội dung chương này giới thiệu tong quan về nhu cầu và xu hưởng phát triển

game và dòng game dựa trên các game framework và game engine; đồng

thời giới thiệu về công nghệ XNA của Microsoft Phần cuối chương này trình

bày mục tiêu và nội dung của đề tài

1.1 Tổngquan

Sức mạnh cốt lõi của công nghệ giải trí game chính là do cỗ máy “game engine” và Game Framework cung cấp

Game Framework là một tập hợp thư viện chứa các hàm và đối tượng hỗ trợ, cho phép

vẽ, xử lý hoạt cảnh, xây hiệu ứng âm thanh từ các tài nguyên có sẵn, được xây dựng với mục đích có tính tái sử dụng cao nhất có thế, từ đó các game engine được xây dựng

Game engine có thể được hiểu như một middleware (phần mềm lớp giữa) Nói theo cách khác, Game Engine là phần mềm kiểm soát mọi hoạt động, tương tác của một trò chơi,

từ kỹ thuật đến cách chơi, logic game

Dựa trên các tiền đề này, các nhà sản xuất đã xây dựng ra các dòng game nổi trội trong làn giải trí game, với nội dung phong phú như dòng game nhập vai Diablo, Prince Of Persia , dòng game chiến lược Age Of Wonder, Age Of Empire với máy PC và dòng game nhập vai Final Fantasy, Kingdom Heart với hệ máy Nintendo, Play Station Các phiên bản sản phẩm trong dòng game này được các nhà sản xuất xây dựng từng bước, từ giao diện 2D thô sơ ban đầu được nâng cấp lên giao diện đồ họa 3D Nhưng có một điều mà các dòng game này không thay đổi hoặc thay đổi rất ít qua mỗi phiên bản của chúng là nội dung chính của trò chơi, cốt lõi của các dòng game Không nằm ngoài con đường đó, đề tài này xây dựng những bước ban đầu cho một dòng game của thể loại game chiến lược dựa trên nền Microsoft XNA Framework

Trang 10

1.2 Giới thiệu XNA

Hiện nay XNA framework đã được nâng cấp đến phiên bản 3.0 So với phiên bản 2.0, XNA framework 3.0 là sự mở rộng lớn cung cấp những tính năng dễ sử dụng, tiến đến gần mục tiêu sản xuất ra các dạng game chạy trên nhiều nền tản, cố khả năng chia sẽ với thế giới game trong Xbox360, Window và bây giờ là trên Zune

1.3 Mục tiêu đề tài

Mục tiêu của đề tài bao gồm:

• Nghiên cứu công nghệ MicrosoftXNA Framework 3.0

• Mô tả nội dung của dòng game chiến lược

• Xác định, phân tích các vấn đề và đề ra các giải pháp để phát triển game thuộc dòng game được chọn với công nghệ Microsoft XNA framework

Trang 11

Trên các cơ sở tìm hiểu và phân tích, nhóm xây dựng thử nghiệm dòng game chiến lược

thời gian thực trên nền tảng XNA Framework 3.0 với thể hiện đồ họa 2D

1.4 Nội dung đề tài

Đe tài bao gồm 8 chương, chia thành 3 phần nội dung chính:

Chương 1: giới thiệu tổng quan về nhu cầu và xu hướng phát triển game và dòng game dựa

trên các game framework và game engine Giới thiệu về công nghệ XNA của Microsoft, đồng thời nêu lên mục tiêu và nội dung của đề tài

Chương 2: giới thiệu và XNA framework và XNA game studio,cách thức thực thi game và

thể hiện nội dung game bằng hình ảnh, input và âm thanh

Chương 3: mô tả nội dung của dòng game sẽ được xây dựng trong đề tài, với thể loại game

được lựa chọn là game chiến lược bao gồm các thành phần trong game, logic thể hiện trong game giữa các thành phần

Chương 4: trình bày một số vấn đề và giải pháp về đồ họa 2D trong game với XNA

Chương 5: trình bày một số vấn đề và giải pháp về việc xử lý trong game Chương 6: trình

bày kiến trúc của game được xây dựng Chương 7: trình bày các công cụ tiện ích được xây

dựng hỗ trợ cho game

Chương 8: trình bày kết quả đạt được của đề tài và hướng phát triển

Trang 12

Chương 2

XNA framework và XNA Game Studio

framework vồ XNA game studỉo,cách thức thực thi game và thể hiện nội dung game bằng hình ảnh, input và âm thanh trong công nghệXNA

và bây giờ có cả Zuñe

2.2 Kiến trúc XNA và các trạng thái xử lý trong trò chơi

2.2.1 Kén trúc XNA

Kiến ưúc XNA bao gầm các thành phần xử lý đồ họa, âm thanh, toán học, quá trình nhập xuất, mạng

Trang 13

XNÂ ViiunlSt^diD Coiirtent Device

Hình 2.2 Kiến tróc phân tầng của XNA framework

(Nguồn: [9])

2.2.2 Quản tý các xử tý ừong ừồ choi

Bước đầu tiên trong việc xây dựng một game là tạo ta một lớp kế thừa từ

Microsoft.Xna.Framework.Game , lớp này phải khai báo override các phương thức Update, Draw, LoadContent và Initialize Phương thức Update có trách nhiệm xử lý logic của game

và phương thức Draw cố trách nhiệm vẽ các thành phần củã game ra màn hình Phương thức

Initialize cùng với hàm contructor có trách nhiệm khởi tạo các giá trị ban đầu cho các thành

phần đằ họa, âm thanh và input trong game Phương thức LoadContent load tài nguyên đồ họa bào gồm các hình ảnh sẽ vẽ trong game và UnloadContent có trách nhiệm giải phóng

tài nguyên đồ họa

Mô hình luồng xử lý của ứng dụng trò chơi với framework XNA có thể được

mô tả như sau:

Trang 14

Hình 2.3 Sơ đồ luồng XV lý của úng dụng vói XNÁ framework

Quá trình thực thỉ các trạng thái xử lỷ của một game đơn giản cố thể được trình bày như sau :

• Initialize § - Khởi tạo các đối tượng

• LoadContentQ - Nạp các tài nguyên như: hình ảnh, âm thanh, v.v

• RunQ - chạy vòng lặp của ứng dụng

o Update{) — Thực hiện các tính toán, xử lý cập nhật thông tin cho các đối tượng dữ liệu tại đây o DrawQ - Thực hiện các thao tác vẽ

ra màn hình nội dung của game thông qua các tài nguyên đã nạp và được thực thỉ xử lý

• UnỉoadContentQ - Giải phống các tài nguyên

2.2.3 Quản Ịý tài nguyên trong XNA

❖ Đối tượng serialize hóa tài nguyên Content Pileline

XNA Game Studio Content Pipeline là một tính năng quan trọng do XNA cung cấp bởi vì nó đơn giản hóa việc người phát triển game load các tài nguyên hình ảnh, âm thanh từ các định dạng khác nhau một cách dễ dàng Do đó, người lập

Trang 15

nào để đọc nội dung của chứng Tử các định dạng khác nhau, thông qua quá trình xử lý với XNA Game Studio Content Pipeline sẽ được chuyển thành định dạng dạng chung cho tất cả

là.xnb, nội dung tập tin này sẽ được nạp và đọc vào bộ

nhớ trong ứng dụng game XNA nhờ Content manager

Hình 2.4 Quì trình serialize hóa tài nguyên

❖ XNA Audio System

Trong XNA framework 3.0 đã cung cấp lớp SoundEffect hoặc (SoundEffectlnstance) Việc sử dụng hai lớp này đơn giãn hơn dùng XACT, và XACT không hoạt động trên Zune, nên giải pháp của phiên bản 3.0 sẽ là một tùy chọn tốt cho các game ưên Zune

2.2.4 Các thỉét bị tương tác

Input là thuật ngữ chung để nói đến quá trình nhận các thao tác từ người dùng Trong

XNA, namespace Mỉcrosoft.Xna.Framework.ĩnput đã cho phép hỗ trợ các thiết bị input khác

nhau bao gôm gaxnepa d(Xbox360), gamestỉck, chuột máy tính và bàn phím

Trang 16

Chương 3

trong game với XNA

Nội dung chương này đề cập đến các vẩn đề về đồ họa 2D trong XNA

framework, các giải pháp load và thể hiện hình ảnh, chuỗi kí tự trong ứng

p Giải pháp

Đưa hình ảnh có sẵn vào thư mục Content được tạo cùng với ứng dụng game khi vừa

tạo mới Hình ảnh được đưa vào thư mục Content có định dạng *.jpg, *.bmp, *.png, Khi ứng dụng game được biên dịch, các hình ảnh được chuyển đổi thành định dạng xnb, đây là các định dạng sẽ được ứng dụng game sử dụng để nạp và vẽ khi ứng dụng game thực thi

Để nạp hình ảnh vào ứng dụng game, dùng thuộc tính Content của lớp Game do XNA

cung cấp để load hình ảnh từ đường dẫn đến tên tập tin xnb đã được biên dịch bằng phương

thức Load< T >(string path) của thuộc tính Content

Ví dụ:

Texture2D textture = this.Game.Content.Load<Texture2D>

I "Sprites\\Unit\\ Archon_Archer\\000_Archon_Archer_IDLE.1.01") ) ;

Trang 17

♦> Kết luận

Việc load hình ảnh 2D trong ứng dụng game XNA được thực hiện thông qua phương

thức Load<Texture2D> của thuộc tính Content trong lớp Game Hình ảnh được load là hình

ảnh có sẵn trong thư mục Content của chương trình đã được biên dịch sang định dạng *.xnb

mà game XNA có thể thể hiện được

3.2 Vẽ hình ảnh và các thông tin dạng chuỗi ra màn hình

Đe sử dụng được các phương thức Draw và Drawstring cần phải gọi phương

thức Begin() và End() của SpriteBatch trước và sau khi thực hiện hàm Draw,

DrawString

s p r i t e B a t c h B e g in ) ) ;

s p r i t e B a t c h D r a w( t e xt t u r e , n ew R e c t an g l e( 0 , 0 , 1 0 0 , 1 0 0 ) ,

C o l o r B l ue ) ;

Trang 18

V Giải pháp

XNA framework không hỗ trợ sự kiện người dừng như môi trường Winform, mà chỉ

hỗ trợ quản lý trạng thái của các thiết bị Dựa vào đặc điểm này ta có thể giả lập lại các sự kiện để xây dựng lại các màn hình, cũng như các controls, nhằm xây dựng các công cụ nhập liệu, các màn hình, hay menu chọn lựa

Với các control sử dụng chuột, dùng các khả năng quản lý trạng thái chuột của XNA

để giả lập sự kiện Các trạng thái chuột được quản lý thông qua đối tượng của lớp Mouse State của XNA framework Các nút bấm được hiển thị bởi các hình ảnh, hình ảnh được vẽ

trên màn hình với vị trí và kích thước tùy biến với các tham số của phương thức Draw() Trạng thái chuột bao gồm 2 trạng thái cho mỗi phím trên chuột là : nhấn phim, không nhấn phím Bằng cách kiểm tra liên trạng thái chuột nhấn và vị trí trỏ chuột trên màn hình bằng phương thức UpdateO của lớp Game sẽ xác định nút bấm có bị nhấn hay không, từ đó, đưa

ra các xử lý tương ứng

Trang 19

Hình 3.1 Một panel trong ứng dụng game

Với control sử dụng bàn phím, dùng các khả năng quản lý chuột của XNA để giả lập

sự kiện Trang thái phím được quản lý thông qua đối tượng của lớp KeyboardState Bằng

cách dùng trạng thái phỉm, trong để xác định phím nhấn và phím nhả là phím nào, cố thể lấy

ra kí tự tương ứng và vẽ kí tự vào màn hình bằng phương thức vẽ chuỗi kí tự, hoặc đưa ra các xử lý khác, tương ứng với phím đã dùng

Trang 20

Chương 4

Jễ$ Nội dung của chương này đề cập và phân tích các vẩn đề khi xây dựng dòng

game thể loại chiến lược Với mới vẩn đề, các giải pháp sẽ được đưa ra để

linh động cao trong việc thay đổi kích thước Vậy, vấn đề ở đây là xây dựng một bản

đầ chiến sự lớn, có khả năng tùy biến về kích thước.Có hai giải pháp được nêu ra

trong việc xây dựng bản đồ vùng chiến sự

Giải pháp:

Giải pháp

• Thử xem bản đồ vùng chiến sự là một tập hợp nhiều ảnh nền nhỏ ghép lại(được

gọi là các Cell), kích thước bản đồ tùy thuộc vào số lượng các mảnh ghép vì thế,

khi tăng số lượng các mảnh ghép, ta được một bản đồ có kích thước to hơn Việc

vẽ bản đồ được thực hiện bằng phép vẽ nối tiếp các mãnh ghép trên Viewport

Trang 21

Hình 4.1 Mô tả cách lát bản đầ

• Các bước thực hiện cho giải pháp

o Xác định tính đứng đắn của các mãnh ghép(sự chuyển tiếp giữa các vùng đất trên bản đồ)

Hình 4.2 Trường hợp lát map không hợp lệ

vấn đề

Trang 22

Vấn đề ở đây là làm sao giới hạn lại những Cell nằm trong Viewport để vẽ ra hay nói cách khác là tìm ra index của các Cell trong ma trận sao cho chúng đảm bảo Cell nằm trong Viewport, như thế, khi Map tham gia vào vòng lặp xử lý game, các Cell trong ma trận sẽ được vẽ và xử lý nhanh hơn

• i,j là index của ma trận các Cell

• Xác định lần lượt các đỉnh A,B,C,D nằm ở Cell nào trong ma trận A(iljl) B(i2jl)

C(il J2) D(i2 j2) như vậy các Cell cần vẽ cóil<=i<=i2, jl<=j<=j2 (việc xác

định D là không cần thiết, với A,B,C đã đủ xác định được Ĩl,i2,jl,j2)

Với bản đồ có các Cell dạng hình thoi

Trang 23

• Bản đồ là một tập các Cell dạng hình thoi ghép lại

• Thực hiện tương tự như dạng bản đồ hình vuông nhưng cách xác định i và j khác

do cách biểu diễn hệ trục là khác

• Tóm lại giải pháp chủ yếu dựa trên việc xác định index giới hạn trong ma trận Cell để chọn ra các Cell nằm trong Viewport và vẽ

♦> Kết luận

Bằng cách chỉ vẽ các cell của trong ma trận cell nằm trong vùng viewport, trong

phương thức Draw của lớp Map quá trình vẽ bản đồ bằng các Cell bị giới hạn ra màn hình

được thực hiện nhanh hơn so với việc vẽ toàn bộ các cell ra màn hình viewport

4.3 Thể hiện bản đồ qua Viewport

vấn đề

Đe giới hạn các ô bản đồ cần vẽ trong ma trận ô đã được trình bày trong vấn đề trước,

khi phương thức Draw được gọi, giải pháp đưa ra chỉ thực hiện thao tác vẽ với các ô bản đồ

đã được xử lý giới hạn trong vùng Viewport thay vì vẽ toàn bộ các ô bản đồ trong ma trận ô

của lớp Map

Giải pháp

Trang 24

• Lớp Map được cài đặt là một lớp kế thừa từ lớp DrawableGameComponents của XNA framework,

DrawableGameComponents là lớp tương tự lớp GameComponents nhưng sẽ thực hiện chức năng vẽ vào màn hình bằng cách override Draw() Lớp này chứa

Từ index đã xác định các cell trong ma trận cell, cài đặt hàm Draw() trong lớp Map

để vẽ những cell nằm trong giới hạn index đã xác định

4.4 Thể hiện các đối tượng thuộc vùng Viewport

vấn đề

Các thành phần trong Game bao gồm Unit(quân lính), Structure (công trình), Terrain(địa vật), Resource Center(mỏ tài nguyên) Sau khi đã vẽ từ ma trận Cell ra màn hình một khung cảnh nền cho bản đồ chiến sự, các thành này sẽ được vẽ lên màn hình để thể hiện trực quan cho người chơi cục diện chiến sự Cũng như việc thể hiện các Cell của Map, các đối tượng cần thể hiện trong game chỉ cần thiết được vẽ khi chúng có vị trí nằm trong vùng màn hình Viewport, trong trường hợp vị trí của các đối tượng không nằm trong vùng Viewport, đối tượng sẽ không được vẽ Các đối tượng được thể hiện trong game thuộc các lớp Unit, Structure, ResoưrceCenter, Terrain, tất cả các lớp này đều được kế thừa từ lớp Sprite và vẽ ra màn hình liên tục

T Giải pháp

Trang 25

nhưng sẽ thực hiện chức năng vẽ vào màn hình bằng cách override Draw() Các thành phần của Game đều kế thừa từ lớp Sprite và tùy vào từng thành phần cụ thể, sẽ được cài đặt thành các lớp Unit, Structure nhưng chung quy lại, hàm Draw() của các thành phần này đều override trên hàm Draw() của sprite Để thực hiện vẽ, các thành phần được add vào thuộc tính Components của đối tượng Game dưới dạng Sprite và vẽ ra theo thứ tự trước sau như khi add vào

• Sprite(kế thừa DrawableGameComponents): cài đặt lại về Draw()

• Unit,Structure : kế thừa từ Sprite

• Gọi phương thức Components Add của lớp Game để đưa các

Unit,Structure vào danh sách quản lý các Components dưới dạng sprite

• Để thực hiện điều này, thực hiện như sau, xem toàn bộ bản đồ là một hình chữ nhật lớn dù là loại hình thoi hoặc hình vuông Gốc tọa độ nằm ở gốc trái trên của bản đồ, trục tọa độ là cạnh trên (Ox) và cạnh trái (Oy), ta được một hệ trục tọa độ toàn cục Vị trí của góc trái trên Viewport chỉ là một điểm nằm trên hệ trục đó, nhưng Game component trong XNA frame work lại xem hệ trục tọa độ khi vẽ luôn có gốc là góc trái trên Viewport, trục tọa độ là hai cạnh trên và trái, như vậy Viewport là một hệ trục tọa độ nhỏ trong hệ trục tọa độ toàn cục Lớp Sprite được cài đặt thuộc tính Position, thể hiện vị trí của đối tượng Sprite trong hệ trục tọa độ toàn cục, để kiểm tra có vẽ đối tượng sprite nào đó ra màn hình Viewport

không, ta chỉ cần xét trong hệ tọa độ Viewport, thuộc tính Position của Sprite có

nằm trong vùng Viewport hay không

Trang 26

Hình 4.6 Cách xác định các đối tượng được vẽ ra màn hình

• Hiển nhiên thuộc tính Position phải đảm bảo cho sprite không được nằm ngoài vùng lát nền của bản đồ dạng hình thoi

❖ Kết luận

Số lượng các Sprite cụ thể trong game lớn và nằm rãi rác khắp bản đồ vùng chiến sự, nhưng Sprite chỉ được thể hiện trên màn hình để người chơi quan sát nếu chúng nằm trong màn hình viewport, nói cách khác, chỉ có các thành phần có vị trí xuất hiện trên bản đồ chiến

sự nằm trong vùng viewport mới được vẽ ra màn hình, do đó, thông qua vị trí của các thành phần game so với bản đồ vùng chiến sự và vị trí góc trái trên của màn hình viewport so với bản đồ vùng chiến sự để xác định các thành phần sẽ được vẽ ra màn hình người chơi, các thành phần không nằm trong viewport sẽ không được vẽ

4.5 Cuộn và di chuyển Viewport

A I ! vấn đề

Viewport là màn hình của Game, chỉ thể hiện một phần nhỏ cũng một bản đồ rộng lớn Người chơi muốn thao tác trên bản đồ cần phải chuyển vùng màn hình

Trang 27

p Giải pháp

• Dựa trên các giải pháp đã dùng trong việc hiển thị bản đồ và hiển thị các thành phần Game trong Viewport Bằng cách dựa vào tọa độ của góc trái trên Viewport trong hệ tọa độ toàn cục bản đồ vùng chiến sự, các cell của bản đồ được giới hạn index lại và vẽ ra Viewport, đồng thời, với cách sử dụng tọa độ này, các thành phần Game nằm trong vùng Viewport cũng được vẽ ra màn hình Viewport Như vậy chỉ cần thay đổi tọa độ của góc trái trên của Viewport trong

hệ tọa độ toàn cục của toàn bản đồ bằng các thiết bị Input là có thể thực hiện scroll Viewport trên khắp bản đồ

Hình 4.7 Tọa độ của góc trái trên vùng Viewport thay đổi khi có tín hiệu input

• Tọa độ của góc trái trên vùng Viewport được thay đổi khi có tín hiệu input

o Với keyboard, sử dụng các button để thay đổi tọa độ bằng cách cộng trừ tọa độ theo pixel

o Với mouse, xác định vị trí trỏ chuột dựa vào vùng Viewport để cộng trừ tọa độ góc trái trên Viewport Cụ thể, XNA framework cung cấp khả năng xác định trạng thái của mouse, dựa vào trạng thái này, xác định vị

Trang 28

trí của con trỏ mouse so với Viewport, nếu mouse nằm ngoài Viewport thì cộng trừ tọa độ góc trái trên Viewport để có hướng Scroll Viewport thích hơn trên toàn bộ vùng bản đồ

o Các tính toán về tọa độ của góc trái trên trong hệ tọa độ toàn cục được thực hiện trong phương thức Update của lớp Map

♦> Kết luận

Màn hình viewport chỉ thể hiện một phần của toàn bộ bản đồ vùng chiến sự, vì thế,

đế quan sát toàn cảnh bản đồ vùng chiến sự, viewport cần được nhận điêu khiển từ người dùng và di chuyển trên khắp bản đồ vùng chiến sự Để thực hiện được điều này, vị trí của góc trái trên viewport sẽ bị thay đổi tùy theo tín hiệu điều khiển thông qua các tính toán vecto trên hệ tọa độ toàn cục của toàn bộ bản đồ vùng chiến sự

4.6 Thể hiện các hành động của một sprite

vấn đề

Mỗi Sprite trong Game có một tập những trạng thái hoạt động nhất định bao gồm

những hoạt động cơ bản sau : IDLE, WALK, ATTACK, DIE được gọi tắt là trạng thái

Mỗi trạng thái, cùng với hướng hoạt động của trạng thái đó, bao gồm một loạt các hình ảnh chuyển đổi liên tiếp, mô phỏng từng bước hoạt động của trạng thái đó Hình ảnh sau là 15

ảnh mô tả một Sprite cụ thể là một quân lính đang di chuyển( w ALK)

Trang 29

Hình 4.8 Tập các hình ảnh mô tả hành động của quân lính

Như vậy, để một tả một hoạt động, cần phải liên tục chuyển đổi hình ảnh theo thứ tự cho trước theo một khoảng thòi gian trì hoãn giữa mỗi lần chuyển đổi Nhờ vào

vòng lặp update và Draw của XNA, việc chuyển đổi hình ảnh sẽ được thực hiện dễ dàng nhờ vào quá trình thực hiện liên tục của phương thức override Update được cài đặt trong lớp sprite

W Giải pháp

Giải pháp 1: Lưu tập hình trên thành một Frame hình

Một ảnh có chiều rộng lớn và trên đó là các hình mô tả chuyển động đã xếp thứ tự Bao gồm 2 cách sau:

• Tất cả hình của tất cả các trạng thái nằm trong một frame hình

• Mỗi trạng thái có một frame hình

Sự chuyển đổi liên tiếp được thực hiện bằng cách liên tục khoanh vùng hình ảnh trên frame và vẽ ra màn hình Cách làm như thế có ưu điểm là chỉ can load Frame một lần, rồi chuyển khoanh vùng liên tục trên Frame hình và vẽ ra, nhưng

Trang 30

khuyết điểm của nó là phải xây dựng được Frame hình phù hợp, đồng thời, xác định khoanh vùng phải chính xác và đủ nhanh, mặt khác, XNA chỉ có the load hình ảnh với size 2024x2024

px, vì thế, nếu số lượng hình ảnh trên một Frame là quá nhiều có lẽ sẽ làm chiều rộng của Frame vượt ngưỡng

- fc.

!

X r -

Hình 4.9 Di chuyển quân lính theo từng ô

Giải pháp 2: Lưu các hình ảnh một cách rời rạc

Mô tả đường dẫn đến mỗi hình trong file XML sao cho mỗi tập hình cho một trạng thái được lưu cùng chỗ Từ file XML, mỗi lẫn muốn thể hiện trạng thái của

Sprite, load toàn bộ tập hình vào mảng và việc chuyển đổi sẽ thực hiện bằng cách

chuyển index của mảng

❖ Kết luận

Để thể hiện hành động của một nhân vật trong game, cụ thể là các thao tác

của một quân lính, các hình ảnh sẽ lần lượt được thay đổi thông qua sự thay đổi

index trong tập hình đã xây dựng sẵn theo thứ tự Các hình ảnh được thể hiện có

tính chất tuần tự lặp lại sẽ thể hiện hành động và hướng hoạt động của nhân vật

trong game

vấn đề

Các Sprite trên vùng chiến sự có số lượng rất nhiều, và chia thành nhiều loại

bao gồm quân lính(Unit), công trình(Structure) mặt khác, với các sprite là Unit,

Structure, chúng thuộc sở hữu của một Player cụ thể vấn đề đặt ra là làm cách nào

để quản lý và truy xuất các sprite theo từng loại nhanh và dễ dàng

a

Trang 31

• Trên toàn bộ Game, chia các Sprite thành các danh sách con mà các phần tử là một loại Sprite muốn quản lý

o Danh sách các Unit hiện có trong vùng chiến sự

o Mảng các Structure hiện có trên BattleField

o Thực hiện vòng lặp trên hai danh sách này để tìm Sprite cần thiết

o Đối với mỗi Player, lưu hai danh sách bao gồm danh sách các unit và danh sách các Structure

o Trong Structure, lưu danh sách các Unit do nó sinh ra

o Mỗi Unit có thuộc tính là lớp Structure cho biết nó do Structure nào sinh ra

o Mỗi Unit và Structure có một thuộc tính là lớp Player cho biết nó thuộc Player nào

• Nhờ vào các mối quan hệ này, việc truy cập thông tin các Sprite trên map sẽ thực hiện nhanh chóng hơn

♦> Kết luận

Bằng cách sử dụng danh sách để lưu các tập quân lính và công trình trong game, và các quan hệ associate trong các lớp cài đặt, các thành phần của game được truy xuất một cách nhanh chóng để thực thi các tính toán với game

4.8 Xử lý tấn công của quân lính

vấn đề

Trang 32

Một Unit có khả năng tấn công sẽ tiêu diệt đối phương khi đối phương tiến lại gần

hoặc do chính player chủ động điều khiển Unit đánh quân địch, vấn đề phải giải quyết là

xử lý toàn bộ quá trình phát hiện, tấn công và chết của một Unit

w Giải pháp

• Các Unit có khả năng tấn công có thuộc tính mô tả phạm vi tấn công và phạm vi phát hiện, được thể hiện bằng khoảng cách từ Unit tới đối phương và phạm vi tấn công lớn hơn phạm vi phát hiện, bất kì đối phương nào rơi vào phạm vi phát hiện

sẽ bị Unit áp sát và rút ngắn khoảng cách, khi khoảng cách nằm trong phạm vi tấn công Unit sẽ ra đòn tấn công lên đối phương để tiêu hao sinh lực địch

• Đội tượng đang bị Unit tấn công có còn sinh lực không, nếu đã hết, Unit sẽ ngừng tấn công và chờ đợi một đối tượng tấn công khác

• Nếu đối tượng bị tấn công nếu đã bỏ chạy ra ngoài phạm vi tấn công, Unit sẽ ngừng tấn công và đuổi theo, nếu đối tượng bị tấn công nằm ngoài phạm vi phát hiện, Unit dừng tấn công và đứng yên hoặc chờ lệnh từ Player

• Trong trường hợp Unit đã cạn kiệt sinh lực, DIE là trạng thái Unit sẽ phải nhận lấy và được dispose ra khỏi chương trình

Trang 33

Tài nguyên là thành phần quan trọng, từ đó, Player có thể xây dựng lực lượng, duy trì cuộc chơi Trong suốt quá trình diễn ra trò chơi, việc khai thác tài nguyên là không thể thiếu, từ các tài nguyên khai thác được, Player thực hiện quá trình “quy đổi” thành các

Structure và Unit Tài nguyên sẽ được khai thác từ các mỏ tài nguyên tùy loại Player tham gia trận chiến cần phải khai thác tài nguyên là điều cần thiết

Giải pháp

Các tài nguyên sẽ được cung cấp từ các mỏ tài nguyên Ta dùng một danh sách lưu các mỏ tài nguyên có trong bản đồ chiến sự, và sử dụng đối tượng ProducerUnit để khai thác các mỏ bằng cách:

• Duyệt qua danh sách các mỏ tài nguyên có trên bản đồ trong quá trình đối tượng này di chuyển, khi đã phát hiện mỏ tài nguyên có thể khai thác, thực hiện các bước kiểm tra

o Kiểm tra tài nguyên mang trên người cùng loại hay khác loại với tài nguyên mà

mỏ sắp khai thác cung cấp Nếu tài nguyên đang mang khác loại với tài nguyên

mà mỏ cung cấp, sẽ xóa bỏ hết tài nguyên đang mang và khai thác loại tài

nguyên từ mỏ này

❖ Kết luận

Các tài nguyên được khai thác bởi các quân lính khai thác tài nguyên (ProducerUnit), các quân lính này xác định mỏ tài nguyên nhờ vào khoảng cách của quân lính và mỏ, đồng thời, mỗi quân lính khai thác chỉ được mang theo một loại tài nguyên nhất định trong một thời điểm với số lượng tối ta nhất định Với giải pháp này, các vấn đề tranh chấp và đụng độ giữa các người chơi trên các mỏ tài nguyên

Trang 34

sẽ tăng phần đa dạng cho game, đồng thời, người chơi phải có những yêu cầu điều khiển khai thác thích hợp cho số lượng tài nguyên mỗi loại của người chơi

4.10 Hiệu ứng âm thanh

Vấn đề

Bất kì một thể loại Game nào, chơi trên hệ máy nào thì âm thanh cũng đã trở thành một phần không thể thiếu Âm thanh kết hợp hài hòa với hình ảnh trên màn hình, cùng với các hiệu ứng đặc biệt góp phần gây cảm giác hứng thú với người chơi Như vậy, vấn đề đặt

ra là phải sử dụng hiệu ứng âm thanh trong Game

Giải pháp

Giải pháp

• XNA framework 3.0 cũng cung cấp lớp Các hàm trong SoundEffect cài đặt cho

phép phát âm thanh từ file nguồn với âm lượng khác nhau và vị trí loa khác nhau(loa trái, phải) tùy theo các tham số đầu vào SoundEffect

• Trong phần demo của Game, đã cài đặt hiệu ứng âm thanh thực hiện dựa trên sự

tùy biến về âm lượng và vị trí loa này Bằng cách sử dụng các tham số âm lượng

và vị trí loa, quá trình cài đặt được thực hiện như sau:

o Cài đặt lớp AudioGame.es để phát âm thanh với các tham số đầu vào bao gồm âm lượng và âm lượng loa trái phải

o Trong lớp Unit, trong hàm chuyển ảnh để mô tả trạng thái, kiểm tra Unit đã đi đến ảnh cuối trong tập ảnh của trạng thái ATTACK để phát âm thanh theo các yêu cầu sau:

o Trong trường hợp xung đột xảy ra tại phần bản đồ nằm trong vùng nhìn của Viewport, âm thanh được phát đồng thời cả hai loa và âm lượng lớn

o Trong trường hợp xung đột xảy ra tại phần bản đồ nằm ngoài vùng

Viewport, âm thanh sẽ được điều chỉnh nhỏ dần và loa phát tùy theo vị trí của xung đột so với Viewport(loa trái nếu bên trái, loa phải nếu bên phải)

Trang 35

hiện các hiệu ứng âm thanh đơn giản hơn việc xử dụng XACT, đồng thời, cũng là một tùy chọn cho việc phát triển các game trên nền Microsoft Zune

đó Như thế, để ngưM chơi có một cách nhìn tổng quát về toàn cảnh trận chiến, cần phải

có một hình ảnh thu nhỏ của bản đồ, thể hiện toàn bộ các đối tượng Unit, Structure của các Player, đồng thời hình ảnh thu nhỏ này có thể tương tác với bản đồ thật

W Giải pháp

Xây dựng một hình ảnh mô phỏng bản đồ thật với các Unit và Structure của các Player trên đó gọi là lớp MiniMap Dùng một hình ảnh thu nhỏ của bản đồ làm thuộc tính nền cho MiniMap Hình ảnh này có hình dạng mô tả lại hình dạng của bản đồ thật

Sự tương tác qua lại giữa mini map và bản đồ thật được thể hiện như sau:

• Khi Viewport được thay đổi vị trí trên map, đồng thời hình chữ nhật thể hiện

cũng thay đổi vị trí như vậy

• Khi click chọn vị trí mới cho hình chữ nhật trên mini map, Viewport cũng phải

thay đổi vị trí trên bản đồ thật đứng với vị trí thể hiện của hình chữ nhật trên mini map

Trang 36

Hình 4.10 Minimap

❖ Kết luận

Như vậy, giải pháp đơn giản chỉ là tính lại vị trí của các thành phần muốn thể hiện trong mini map bằng vị trí các thành phần trên bản đồ thực thông qua phép tỷ lệ và thực hiện thao tác trên mini map cũng qua phép tỉ lệ

4.12 Hiển thị thông tin Công ừình, Quân lính, Đội chơi trên menu game

Biểu diễn thông tin của Structure tương tự như thông tin của Unit và cũng chỉ được biểu diễn khi người chơi chọn một Structure để xem thông tin Ngoài ra, trong trạng thái không chọn bất kì Unit hoặc Structure hoặc Unit nào trên bản đồ, Menu sẽ luôn luôn hiển thị thông tin về các Structure mà Player có thể xây dựng cùng với các yêu cầu về tài nguyên để xây dựng

Trang 37

này dưới dạng văn bản và hình ảnh bằng đối tượng SpriteFont và SpriteBatch do XNA framework cung cấp

Sau khi người chơi click chọn một Structure từ Menu, chuyển đổi màu sắc của hình ảnh hiển thị Structure trong Menu để cho biết người chơi đã chọn xây dựng Structure này Người chơi click vào vùng bản đồ nằm trong Viewport để chọn vị trí xây Structure

Trang 38

Kiểm tra số lượng tài nguyên yêu cầu cho Structure Trong quá trình xây dựng, Structure không thể đi vào hoạt động Structure chỉ đi vào hoạt động sau khi đã hoàn tất, việc này được kiểm tra bằng cách dựa vào tập hình ảnh mô tả hoạt động xây dựng của Structure

❖ Kết luận

Bằng cách kiểm tra tính hợp lệ trong việc xử lý xây dựng công trình, người cần phải đáp ứng đầy đủ các yêu cầu về tài nguyên để tiến hành xây dựng một công trình và phải theo trình tự xây dần dần lên

4.14 Xử lý mua quân lính

vấn đề

Vấn đề cần giải quyết là xây dựng các bước để thực hiện chức năng mua Unit của Game từ các Structure, bao gồm cả việc các Unit này xuất hiện thế nào và ở đâu sau khi đã mua thành công

T Giải pháp

Khi người chơi đang ở trạng thái chọn một Structure của đội mình trên bản đồ, Menu

sẽ hiễn thị thông tin Structure đó, đồng thời sẽ hiển thị danh sách các Unit mà đội chơi này được phép mua mà Structure cung cấp được

Chương trình kiểm tra tài nguyên hiện có đủ để mua Unit hay không, khi đó có hai trường hợp xảy ra : đủ tài nguyên để mua Unit, không đủ tài nguyên để mua Unit

• Nếu người chơi có đủ tài nguyên để mua Unit, số lượng Unit của loại chọn mua trong hàng đợi được mua sẽ tăng lên, và tài nguyên của Player sẽ giảm với số lượng đã yêu cầu trong menu Sỡ dĩ các Unit đặt mua phải nằm trong hàng đợi vì một Unit muốn mua xong cần phải có một khoảng

Trang 39

• Trong trường hợp kiểm tra và thấy không đủ tài nguyên để mua Unit, hiển nhiên Unit sẽ không được đưa vào hàng đợi để đợi mua xong

Giải pháp xây dựng công trình và mua quân lính được thực hiện tương tự đối với các đội chơi thông minh, chỉ khác là các thao tác được thực hiện một cách tự động, không cần

dùng các thiết bị nhập như đối với đội chơi do người chơi điều khiển

- Đọc các thông tin của đối tượng cần bổ sung từ tập tin xml lên, sử dụng đối tượng

CodeGenerator để xây dựng một lớp đối tượng cụ thể, kế thừa từ lớp đối tượng

chung, sử dụng các thông tin đọc được từ tập tin xml Có thể thực

Ngày đăng: 08/03/2017, 19:53

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Aaron Reed, Learning XNA 3.0: XNA 3.0 Game Development for the PC, Xbox 360, andZune, O'Reilly Media, Inc., 2008 Sách, tạp chí
Tiêu đề: Learning XNA 3.0: XNA 3.0 Game Development for the PC, Xbox 360, andZune
[2] Alexandre Lobâo, Bruno Evangelista, José Antonio Leal de Farias, Beginning XNA 3.0 Game Programming From Novice to Professional, Apress, 2009 Sách, tạp chí
Tiêu đề: Beginning XNA 3.0 Game Programming From Novice to Professional
[3] Benjarmin Nitchikes, Professional XNA Game Programming: For Xbox 360 and Windows, Wrox, 2007 Sách, tạp chí
Tiêu đề: Professional XNA Game Programming: For Xbox 360 and Windows
[4] Chad Carter, Microsoft XNA Game Studio 3.0 Unleashed, Sams, 2009 Sách, tạp chí
Tiêu đề: Microsoft XNA Game Studio 3.0 Unleashed
[5] Riemer Grootjans, XNA 3.0 Game Programming Recipes: A Problem-Solution Approach, Apress, 2009 Sách, tạp chí
Tiêu đề: XNA 3.0 Game Programming Recipes: A Problem-Solution Approach
[6] Dan Waters, Zune Game Development Using XNA 3.0, Apress, 2009 Sách, tạp chí
Tiêu đề: Zune Game Development Using XNA 3.0
[7] Rob Miles, Microsoft XNA Game Studio 3.0: Learn Programming Now!, Microsoft Press, 2009 Sách, tạp chí
Tiêu đề: Microsoft XNA Game Studio 3.0: Learn Programming Now
[8] Stephen Cawood, Pat McGee, Microsoft XNA game Studio Creator’s Guide, McGraw-Hill Osborne Media, 2007 Sách, tạp chí
Tiêu đề: Microsoft XNA game Studio Creator’s Guide
[9] Frank Savage, XNA Game Studio 3.0, Microsoft Corporation, PDC 2008 Sách, tạp chí
Tiêu đề: XNA Game Studio 3.0

HÌNH ẢNH LIÊN QUAN

Hình 2.2 Kiến tróc phân tầng của XNA framework - Nghiên cứu và phát triển game với công nghệ XNA
Hình 2.2 Kiến tróc phân tầng của XNA framework (Trang 13)
Hình 2.3 Sơ đồ luồng  XV  lý của úng dụng vói XNÁ framework - Nghiên cứu và phát triển game với công nghệ XNA
Hình 2.3 Sơ đồ luồng XV lý của úng dụng vói XNÁ framework (Trang 14)
Hình 2.4 Quì trình serialize hóa tài nguyên - Nghiên cứu và phát triển game với công nghệ XNA
Hình 2.4 Quì trình serialize hóa tài nguyên (Trang 15)
Hình  4.6  Cách xác định các đối tượng được vẽ ra màn hình - Nghiên cứu và phát triển game với công nghệ XNA
nh 4.6 Cách xác định các đối tượng được vẽ ra màn hình (Trang 26)
Hình 4.8 Tập các hình ảnh mô tả hành động của quân lính - Nghiên cứu và phát triển game với công nghệ XNA
Hình 4.8 Tập các hình ảnh mô tả hành động của quân lính (Trang 29)
Hình 4.11 Stf đầ luồng xử lý phát sinh đối tượng động - Nghiên cứu và phát triển game với công nghệ XNA
Hình 4.11 Stf đầ luồng xử lý phát sinh đối tượng động (Trang 40)
Bảng 5.1 Các đối tưong hỗ trợ vẽ bản đồ - Nghiên cứu và phát triển game với công nghệ XNA
Bảng 5.1 Các đối tưong hỗ trợ vẽ bản đồ (Trang 46)
5.2.2. Sơ đồ lớp J ❖  Một số - Nghiên cứu và phát triển game với công nghệ XNA
5.2.2. Sơ đồ lớp J ❖ Một số (Trang 47)
Hình 6.1 Màn hình game chính - Nghiên cứu và phát triển game với công nghệ XNA
Hình 6.1 Màn hình game chính (Trang 52)
Hình 6.2 Các quân lính và hiệu ứng trên màn hình game chính - Nghiên cứu và phát triển game với công nghệ XNA
Hình 6.2 Các quân lính và hiệu ứng trên màn hình game chính (Trang 53)
Hình 6.5 Màn hình chính ứng dụng Resource Generator - Nghiên cứu và phát triển game với công nghệ XNA
Hình 6.5 Màn hình chính ứng dụng Resource Generator (Trang 55)
Hình A.13. Các loại quân lính trong game - Nghiên cứu và phát triển game với công nghệ XNA
nh A.13. Các loại quân lính trong game (Trang 65)
Hình B.15. Giao diện chính ứng - Nghiên cứu và phát triển game với công nghệ XNA
nh B.15. Giao diện chính ứng (Trang 69)
Hình B.16. Màn hình chính dạng thu nhỏ - Nghiên cứu và phát triển game với công nghệ XNA
nh B.16. Màn hình chính dạng thu nhỏ (Trang 70)
Hình B.18. Màn lủnh của ứng dụng hỗ trợ dựng bản đồ - Nghiên cứu và phát triển game với công nghệ XNA
nh B.18. Màn lủnh của ứng dụng hỗ trợ dựng bản đồ (Trang 74)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w