1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn Đồ họa máy tính "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"

40 2,1K 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 40
Dung lượng 1,38 MB

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

Nội dung

Vào những năm 80, khi máy tính và Internet vẫn chưa xuất hiện thì thứ giải trí “xa xỉ” nhất đối với những đứa trẻ con đô thị là màn hình tivi và máy điện tử bốn nút Nintendo của Nhật. Chính các trò chơi điện tử kinh điển thuở thập niên 80 này là sự khởi đầu của nguồn cảm hứng sáng tạo cho những game online ăn khách sau này.Thật thiếu sót nếu không liệt kê trò Battle City – bắn tăng – vào dòng game kinh điển của một thế hệ. Trò chơi này được Namco bán năm 1985 trên hệ máy NES, sau đó được phát triển cho một số nền máy như Game Boy, Arcade, Sharp X1. Battle City có khoảng 35 màn chơi mà khi vượt qua hết game thủ sẽ quay về chơi lại từ đầu với mức độ khó hơn. Ngoài ra, trò chơi cũng có chế độ cho phép thay đổi và tự tạo ra bản đồ.Máy điện tử Brick game đã thực sự tạo nên một cuộc cách mạng trong các phương tiện giải trí cầm tay từ những năm 1993 – 1994. Hiếm có cô cậu học sinh nào thời đó không bị “hút hồn” vào màn hình đen trắng của chiếc máy này trong nỗ lực chinh phục đỉnh cao của trò chơi “xếp gạch”. Các phiên bản về sau của Brick game còn có thể các trò khác như đấm bốc hay đua xe.Tuổi thơ đã đi qua và không bao giờ trở lại, đến bao giờ game thủ Việt mới có thể sống lại cảm giác của một thời đam mê điện tử bốn nút, có thể chơi đi chơi lại một trò chơi mà không thấy chán? Ngày đó, bao giờ? Để mang hồi tưởng lại một thời tuổi thơ với bao điều thú vị, tôi đã quyết định lựa chọn đề tài “Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game”, mời các bạn tìm hiểu phần nội dung đề tài.

Trang 1

KHOA CNTT&TT - -

BÀI TIỂU LUẬN HỌC PHẦN ĐỒ HỌA MÁY TÍNH

Đề tài:

“Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game”

Thanh Hóa, 11/2014

Trang 2

- -

BÀI TIỂU LUẬN HỌC PHẦN ĐỒ HỌA MÁY TÍNH

Đề tài:

“Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game”

Thanh Hóa, 11/2014

Trang 3

Trong quá trình học tập tại trường, chúng em đã được học hỏi và tiếp thu rất nhiều kiến thức đại cương cũng như chuyên ngành nhằm nâng cao vốn hiểu biết và là hành trang quý báu giúp chúng em vững bước vào đời Em xin gửi lời cảm ơn chân thành đến quý thầy cô đã giảng dạy chúng em trong suốt thời gian qua, khoa Công Nghệ Thông Tin và truyền thông cũng như tất cả quý thầy cô trong trường Đại học Hồng Đức Đặc biệt em xin chân thành cảm ơn cô Lê Thị Hồng - người đã trực tiếp giảng dạy chúng em học phần Đồ họa máy tính và cũng là người tận tình hướng dẫn em trong suốt thời gian thực hiện đề tài này

Tuy nhiên, dù rất cố gắng nhưng do thời gian có hạn nên bài tiểu luận của

em khó tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm và đóng góp ý kiến của quý thầy cô và các bạn để bài tiểu luận của em được hoàn chỉnh hơn

Em xin chân thành cảm ơn!

Thanh Hóa, 11/2014

Sinh viên thực hiện

Trang 4

CHƯƠNG I: MỞ ĐẦU 1

1.1 Lí do chọn đề tài 1

1.2 Mục tiêu, nhiệm vụ của đề tài 1

1.2.1 Mục tiêu 1

1.2.2 Nhiệm vụ 2

1.3 Khách thể, đối tượng và phạm vi nghiên cứu 2

1.3.1 Khách thể nghiên cứu 2

1.3.2 Đối tượng và phạm vi nghiên cứu 2

1.4 Phương pháp nghiên cứu 2

CHƯƠNG II: CƠ SỞ LÍ LUẬN 3

2.1 Xe tăng 3

2.2 Đạn 3

2.3 Di chuyển 4

2.4 Boss 6

2.5 Luật chơi 7

CHƯƠNG III: NỘI DUNG 9

3.1 Tổ chức lưu trữ game 9

3.2 Nhóm các hàm điều khiển 10

3.2.1 Nhóm các hàm thao tác với đạn 10

3.2.2 Nhóm các hàm thao tác với xe tăng 11

3.2.3 Nhóm các hàm điều khiển xe tăng của địch 12

3.2.4 Hàm điều khiển Boss 13

3.2.5 Nhóm các hàm điều khiển việc chơi game của người chơi 13

3.3 Nhóm các hàm đồ họa 14

3.3.1 Hiển thị một điểm ảnh trên màn hình 14

3.3.2 Hàm hiển thị một số nguyên ra màn hình đồ họa 15

3.3.3 Nhóm các hàm hiển thị các đối tượng trong game 16

Trang 5

3.3.6 Menu chính 22

3.3.7 High Score 23

3.3.8 Option 24

3.3.9 Help 25

3.3.10 About 26

3.4 Nhóm các hàm khác 27

3.4.1 Nhóm các hàm điều khiển cửa sổ chương trình 27

3.4.2 Nhóm các hàm kiểm tra 27

3.4.3 Nhóm các hàm định hình hệ thống 28

3.4.4 Nhóm các hàm thao tác với chuột 28

3.5 Xây dựng một số level cho game 28

CHƯƠNG IV: KẾT LUẬN 32

4.1 Tóm tắt kết quả nghiên cứu 32

4.2 Đề xuất và hướng phát triển 32

TÀI LIỆU THAM KHẢO 34

Trang 6

Hình 1: Xe tăng địch 3

Hình 2: Xe tăng do người chơi điều khiển 3

Hình 3: Đạn 3

Hình 4: Di chuyển xe tăng khi không bị vật cản 4

Hình 5: Di chuyển khi xe tăng bị cản một bên ở phía trước 5

Hình 6: Di chuyển xe tăng khi bị cản cả hai bên ở phía trước 6

Hình 7: Di chuyển khi xe tăng bị cản ở phía sau 6

Hình 8: Boss 6

Hình 9: Màn hình Welcome 20

Hình 10: Menu chính của chương trình 22

Hình 11: Bảng xếp hạng người chơi 23

Hình 12: Giao diện Option 24

Hình 13: Giao diện Help 25

Hình 14: Giao diện About 26

Hình 15: Level 1 29

Hình 16: Level 2 29

Hình 17: Level 3 30

Hình 18: Level 4 30

Hình 19: Đấu với Boss ở cuối mỗi Level 31

Trang 7

CHƯƠNG I: MỞ ĐẦU

1.1 Lí do chọn đề tài

Vào những năm 80, khi máy tính và Internet vẫn chưa xuất hiện thì thứ giải trí “xa xỉ” nhất đối với những đứa trẻ con đô thị là màn hình tivi và máy điện tử bốn nút Nintendo của Nhật Chính các trò chơi điện tử kinh điển thuở thập niên

80 này là sự khởi đầu của nguồn cảm hứng sáng tạo cho những game online ăn khách sau này

Thật thiếu sót nếu không liệt kê trò Battle City – bắn tăng – vào dòng game kinh điển của một thế hệ Trò chơi này được Namco bán năm 1985 trên hệ máy NES, sau đó được phát triển cho một số nền máy như Game Boy, Arcade, Sharp X1 Battle City có khoảng 35 màn chơi mà khi vượt qua hết game thủ sẽ quay về chơi lại từ đầu với mức độ khó hơn Ngoài ra, trò chơi cũng có chế độ cho phép thay đổi và tự tạo ra bản đồ

Máy điện tử Brick game đã thực sự tạo nên một cuộc cách mạng trong các phương tiện giải trí cầm tay từ những năm 1993 – 1994 Hiếm có cô cậu học sinh nào thời đó không bị “hút hồn” vào màn hình đen trắng của chiếc máy này trong

nỗ lực chinh phục đỉnh cao của trò chơi “xếp gạch” Các phiên bản về sau của Brick game còn có thể các trò khác như đấm bốc hay đua xe

Tuổi thơ đã đi qua và không bao giờ trở lại, đến bao giờ game thủ Việt mới

có thể sống lại cảm giác của một thời đam mê điện tử bốn nút, có thể chơi đi chơi lại một trò chơi mà không thấy chán? Ngày đó, bao giờ?Để mang hồi tưởng lại

một thời tuổi thơ với bao điều thú vị, tôi đã quyết định lựa chọn đề tài “Mô phỏng

game bắn tăng trên máy điện tử cầm tay Brick Game”, mời các bạn tìm hiểu

phần nội dung đề tài

1.2 Mục tiêu, nhiệm vụ của đề tài

1.2.1 Mục tiêu

Đề tài này được thực hiện nhằm tạo ra một chương trình mô phỏng giao diện

và cách thức hoạt động của game bắn tăng trên máy điện tử cầm tay Brick game

Trang 8

1.2.2 Nhiệm vụ

- Tổ chức lưu trữ game một cách hợp lí nhất

- Xây dựng nhóm các hàm điều khiển mô phỏng hoạt động của game

- Xây dựng nhóm các hàm đồ họa mô phỏng giao diện của game

- Xây dựng nhóm các hàm điều khiển cửa sổ, kiểm tra, định hình hệ thống

- Đọc chuột và bạn phím đồng thời trong quá trình chơi game

- Xây dựng một số level cho game

1.3 Khách thể, đối tượng và phạm vi nghiên cứu

1.3.1 Khách thể nghiên cứu

Cài đặt chương trình mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game

1.3.2 Đối tượng và phạm vi nghiên cứu

Game bắn tăng trên máy điện tử cầm tay Brick Game

1.4 Phương pháp nghiên cứu

- Phương pháp thu thập tài liệu: thu thập tài liệu từ những bài báo khoa học, các trang web tin học và một số ebook về đề tài nghiên cứu, giáo trình và các tài liệu học tập khác

- Phương pháp phân tích và tổng hợp tài liệu: từ những tài liệu đã thu thập, tiến hành tìm hiểu, phân tích và tồng hợp nội dung liên quan đến

Trang 9

CHƯƠNG II: CƠ SỞ LÍ LUẬN 2.1 Xe tăng

Ở trong game, mỗi xe tăng được biểu diễn bởi 6 điểm ảnh; điểm ảnh ở phía trước chính là nòng của xe tăng Hình 1 biểu diễn hình dạng của xe tăng khi ở những hướng khác nhau tương ứng là lên trên, sang trái, xuống dưới và sang phải

Xe tăng do người chơi điều khiển cũng giống như xe tăng của địch, chỉ khác

ở chỗ có tâm với một màu sắc khác để phân biệt (hình 2)

2.2 Đạn

Mỗi viên đạn được biểu diễn bởi 1 điểm ảnh Khi được một xe tăng bắn ra,

nó sẽ có vị trí ban đầu ở ngay trước nòng của xe tăng đó (hình 3) Viên đạn sẽ bay theo hướng ban đầu và sẽ không đổi hướng trong suốt quá trình Khi viên đạn

Hình 1: Xe tăng địch

Hình 3: Đạn Hình 2: Xe tăng do người chơi điều khiển

Trang 10

chạm vào giới hạn của địa hình, một xe tăng thì viên đạn sẽ bị hủy Khi đạn chạm vào một vật cản của địa hình, ô địa hình đó sẽ bị phá hủy, đồng thời viên đạn đó cũng bị hủy Khi hai hay nhiều viên đạn chạm vào nhau, tất cả chúng sẽ bị hủy

nó sẽ được dịch chuyển 1 ô về hướng đó

- Khi xe tăng di chuyển một nấc về một hướng khác so với hướng hiện tại của xe tăng (xe rẽ trái, rẽ phải hoặc quay đầu) và những ô thuộc xe

Hình 4: Di chuyển xe tăng khi không bị vật cản

Trang 11

tăng khi di chuyển không có vật cản thì tọa độ tâm của nó là không đổi và chỉ xoay toàn thân về hướng tương ứng (hình 4)

- Khi phía trước của xe tăng có vật cản ở một phía thì nó không thể tiến

về phía trước được; tuy nhiên nó vẫn có thể rẽ về 1 trong 3 hướng còn lại nếu như hướng đó không có vật cản Khi xe tăng rẽ về hướng ngược với hướng có vật cản, toàn thân của xe tăng dịch chuyển về hướng đó

1 nấc, đồng thời thân xe tăng quay về hướng đó (hình 5)

- Khi xe tăng bị vật cản ở cả hai bên phía trước, nó không thể tiến về phía trước cũng như rẽ trái hay rẽ phải, lúc này nó chỉ có thể quay đầu Khi quay đầu, ngoài việc xe tăng đổi hướng thì nó còn được dịch chuyển về hướng đó 1 nấc (hình 6)

Hình 5: Di chuyển khi xe tăng bị cản một bên ở phía trước

Trang 12

- Khi xe tăng bị một vật cản ở phía sau (bởi nòng của một xe tăng khác),

nó không thể rẽ trái, rẽ phải hay quay đầu, nó chỉ có thể tiến về phía trước (hình 7)

2.4 Boss

Boss được biểu diễn bởi 81 điểm ảnh như hình 8 Toàn thân Boss được bọc

thép rất chắc chắn nên bạn chỉ có thể làm tổn thương Boss bằng cách bắn trúng điểm tận cùng trên nòng của Boss (điểm yếu) Khi Boss xuất hiện thì luôn ở tận

Hình 6: Di chuyển xe tăng khi bị cản cả hai bên ở phía trước

Hình 8: Boss Hình 7: Di chuyển khi xe tăng bị cản ở phía sau

Trang 13

cùng, phía trên của địa hình Boss chỉ có thể di chuyển qua trái và qua phải theo một quỹ đạo nhất định Khi Boss bắn ra một viên đạn, viên đạn đó sẽ xuất hiện ngay phía trước nòng của Boss và sẽ bay từ trên xuống dưới

Khi ở chế độ đánh Boss, xe tăng do người chơi điều khiển sẽ xuất hiện ở tận

cùng, phía dưới của địa hình, xe tăng do người chơi điều khiển sẽ di chuyển ngang

và luôn hướng nòng về phía Boss

2.5 Luật chơi

Tại mỗi màn chơi, số lượng xe tăng của quân địch có mặt không quá 8 Khi một xe tăng của quân địch bị tiêu diệt, một xe tăng khác sẽ xuất hiện thay thế Xe tăng của quân địch có thể xuất hiện ở 1 trong 6 vị trị trên địa hình và sẽ di chuyển

và bắn một cách ngấu nhiên Đạn của xe tăng địch không làm hại quân địch mà chỉ có đạn do xe tăng người chơi bắn ra mới có thể tiêu diệt được quân địch Người chơi sẽ được yêu cầu tiêu diệt một số lượng xe tăng nhất định, khi

hoàn thành nhiệm vụ này, người chơi sẽ được đấu với Boss; nếu xe tăng người

chơi điều khiển điều khiển bị trúng đạn thì ngay lập tức nó sẽ nổ và người chơi phải chơi lại màn chơi đó, đồng thời số lượt chơi còn lại sẽ bị trừ đi 1

Khi đấu với Boss, người chơi sẽ được giao nhiệm vụ bắn trúng điểm yếu của

Boss một lượng đạn nhất định để tiêu diệt được nó và hoàn thành nhiệm vụ Khi

bị trúng đạn của Boss, xe tăng do người chơi điều khiển sẽ nổ ngay tức thì và người chơi sẽ phải quay lại chiến đấu với Boss từ đầu đồng thời số lượt chơi còn lại sẽ bị trừ đi 1 Sau khi hạ được Boss của Level đó, người chơi sẽ được đưa tới

Level tiếp theo với độ khó cao hơn

Trong quá trình chơi, người chơi có thể tạm dừng bất cứ lúc nào với chức

năng Pause hay dừng chơi với chức năng Stop Khi chọn chức năng Stop, toàn bộ

thông tin liên quan đến trò chơi sẽ được lưu lại; người dùng có thể thoát khỏi trò chơi và tiếp tục bất cứ lúc nào nếu muốn

Khi chức năng Reset được gọi tới khi người dùng đang chơi, toàn bộ kết quả

sẽ bị hủy bỏ, người dùng sẽ chơi lại game từ đầu

Khi xe tăng do người chơi điều khiển bị nổ và số lượt chơi còn lại đã hết thì người chơi sẽ thua Trò chơi sẽ tự động cập nhật bảng xếp hạng và yêu cầu người

Trang 14

chơi nhập tên vào (nếu như số điểm của người chơi lớn hơn của người chơi có thứ hạng 10 trong bảng xếp hạng)

Khi người chơi hoàn thành được tất cả những Level trong game, trò chơi sẽ

kết thúc, kết quả của người chơi sẽ được cập nhật vào bảng thứ hạng, người chơi

có thể chơi lại từ đầu nếu muốn

Trang 15

CHƯƠNG III: NỘI DUNG

3.1 Tổ chức lưu trữ game

Các thông tin chính về game được lưu trữ bằng những biến sau:

char a[maxx+2][maxy+2];

int score=0, destroy=0, level=1, target=0, cursor[5], turn=4;

int mball[101][4], c_mball=0, eball[101][4], c_eball=0, enemy[11][4], c_enemy=0; int a_boss[5];

Trong đó:

- char a[maxx+2][maxy+2]là biến mảng dùng để lưu lại toàn bộ địa hình trong game, mỗi phần tử của mảng ứng với mỗi điểm ảnh trên địa hình

- int score=0, destroy=0, level=1, target=0, cursor[5], turn=4 lần lượt

là các biến dùng để lưu lại số điểm của người chơi đạt được; nhiệm vụ

mà người chơi đã hoàn thành được trong mỗi level; level hiện tại của người chơi; mục tiêu của level hiện tại; những thông tin liên quan đến

xe tăng do người chơi điều khiển; số lượt chơi còn lại

- int mball[101][4], c_mball=0, eball[101][4], c_eball=0, enemy[11][4], c_enemy=0 lần lượt là các biến dùng để lưu lại thông

tin về những viên đạn do xe tăng người chơi điều khiển bắn ra; số lượng đạn do xe tăng người chơi bắn ra hiện có trên màn hình; thông tin về những viên đạn do xe tăng địch bắn ra; số lượng đạn do xe tăng địch bắn ra hiện có trên màn hình; thông tin về những xe tăng địch hiện có trên màn hình; số lượng xe tăng địch hiện có trên màn hình

- int a_boss[5] là mảng dùng để lưu các thông tin liên quan tới Boss trong mỗi level

Trang 16

int r_score[12];

Trong đó:

- string path dùng để lưu lại thông tin về đường dẫn tới thư mục cài đặt

của game, đường dẫn này sẽ được cập nhật liên tục mỗi khi game đươc thực thi

- int lv_max=0 dùng để lưu lại thông tin về level tối đa đang được game

hỗ trợ Khi người chơi vượt được qua level này thì game sẽ kết thúc

Biến này sẽ được tự động cập nhật giá trị mỗi khi game được thực thi,

vì vậy, nếu muốn tăng số lượng level của game, ta chỉ cần copy file lưu trữ thông tin về level của game vào thư mục cài đặt, game sẽ tự

động nhận diện sự thay đổi này khi khởi động lại

- char r_name[12][16] và int r_score[12] là hai biến dùng để lưu lại

bảng xếp hạng của người chơi Chúng sẽ được tự động nạp vào khi game khởi động và cập nhật khi có một người chơi nào đó vượt qua thành tích của người chơi đứng cuối cùng trong bảng xếp hạng

Ngoài ra, còn một số biến khác dùng để lưu lại thông tin về sự cài đặt của người chơi:

int sound=1, music=1, speed=6;

bool InFullScreen=false;

int X0=0, Y0=0;

Trong đó:

- int sound=1, music=1, speed=6 là 3 biến dùng để lưu lại thông tin về

việc bật hay tắt hiệu ứng âm thanh, nhạc nền và tốc độ của game

- bool InFullScreen=false dùng để lưu lại thông tin về cửa sổ game có

đang ở chế độ toàn màn hình hay chế độ cửa sổ thông thường

- int X0=0, Y0=0 là hai biến dùng để lưu lại tọa độ trên cùng bên trái

của màn hình hiển thị game

3.2 Nhóm các hàm điều khiển

3.2.1 Nhóm các hàm thao tác với đạn

Các hàm thao tác với đạn bao gồm:

Trang 17

void huy_dan(int i, int ball[][4], int &c_ball, int del=1);

void huy_danxy(int x, int y, int direction, int ball[][4], int &c_ball);

void huy_danxy_same(int x, int y, int direction, int ball[][4], int &c_ball, int &p);

Trong đó:

- Hàm void huy_dan(int i, int ball[][4], int &c_ball, int del=1) dùng để hủy viên đạn thứ i trong mảng đạn ball với số đạn trong mảng hiện tại

là c_ball Đối số del đưa vào để cho phép hàm này xóa viên đạn trên

màn hình đồ họa hay không

- Hàm void huy_danxy(int x, int y, int direction, int ball[][4], int

&c_ball) dùng để xóa tất cả những viên đạn có tọa độ (x, y) và có

hướng bay là direction trên màn hình game ra khỏi mảng lưu đạn ball, sau khi thao tác xóa hoàn thành, số đạn c_ball được lưu trên mảng sẽ

giảm đi 1

- Hàm void huy_danxy_same(int x, int y, int direction, int ball[][4], int

&c_ball, int &p) dùng để xóa tất cả những viên đạn có tọa độ (x, y) và

có hướng bay là direction trên màn hình game ra khỏi mảng lưu đạn

ball, sau khi thao tác xóa hoàn thành, số đạn c_ball được lưu trên mảng

sẽ giảm đi 1, viên đạn thứ p trên mảng lưu đạn ban đầu sẽ biến đổi thành viên đạn thứ p trên mảng lưu đạn sau khi xóa

3.2.2 Nhóm các hàm thao tác với xe tăng

Các hàm thao tác với xe tăng bao gồm:

int empty(int x, int y, int direction);

int damage(int x, int y, int direction, int xt, int yt, int directiont);

void move(int &x, int &y, int &o_direction, int n_direction);

void shoot(int x, int y, int direction, int a_ball[][4], int &c_ball);

int die(int x, int y, int direction, int ball[][4], int &c_ball);

Trong đó:

- Hàm int empty(int x, int y, int direction) dùng để kiểm tra xem tại vị trí (x, y) có còn trống để một xe tăng có hướng direction nằm hay

không

Trang 18

- Hàm int damage(int x, int y, int direction, int xt, int yt, int directiont) dùng để kiểm tra xem một xe tăng nằm ở tọa độ (xt, yt) với hướng

directiont có bị một viên đạn có tọa độ (x, y) với hướng direction uy

hiếp hay không

- Hàm void move(int &x, int &y, int &o_direction, int n_direction) dùng để di chuyển một xe tăng ở vị trí (x, y) với hướng là o_direction sang hướng n_direction

- Hàm void shoot(int x, int y, int direction, int a_ball[][4], int &c_ball) dùng để bắn một viên đạn ra từ xe tăng có tọa độ (x, y) với hướng

direction Viên đạn được bắn ra sẽ được lưu vào mảng a_ball với số

đạn được lưu trong mảng c_ball tăng lên 1

- Hàm int die(int x, int y, int direction, int ball[][4], int &c_ball) dùng

để kiểm tra xem xe tăng có tọa độ (x, y) với hướng direction có bị giết bới một viên đạn thuộc mảng ball có c_ball viên đạn hay không

3.2.3 Nhóm các hàm điều khiển xe tăng của địch

Những hàm điều khiển xe tăng của địch được sử dụng bao gồm:

void sinhdich(int enemy[][4], int &c_enemy);

void dichlam(int enemy[][4], int &c_enemy, int eball[][4], int &c_eball, int mball[][4], int &c_mball);

Trong đó:

- Hàm void sinhdich(int enemy[][4], int &c_enemy) dùng để sinh ra

một xe tăng địch tại một trong 6 vị trí trên màn hình Sau khi xe tăng

được sinh ra sẽ được lưu vào mảng enemy với số xe tăng trong mảng

c_enemy được tăng lên 1 Việc sinh địch phục thuộc vào số lượng xe

tăng địch cho phép tối đa trên màn hình e_max

- Hàm void dichlam(int enemy[][4], int &c_enemy, int eball[][4], int

&c_eball, int mball[][4], int &c_mball) dùng để điều khiển hoạt động

của tất cả các xe tăng của địch Các thao tác này được thực hiện một cách ngẫu nhiên phụ thuộc vào những con số được sinh ngẫu nhiên bởi hệ thống

Trang 19

3.2.4 Hàm điều khiển Boss

if (rand()%2 && rand()%2 && rand()%2)

p_ball(eball, c_eball, mball, c_mball);

}

Hàm này sẽ điều khiển toàn bộ hoạt động của Boss bao gồm di chuyển và

bắn Cách thao tác này cũng được thực hiện phụ thuộc vào những con số ngẫu

nhiên được sinh ra bởi hệ thống Tốc độ bắn của Boss phụ thuộc vào b_speed

được quy định bởi chương trình

3.2.5 Nhóm các hàm điều khiển việc chơi game của người chơi

Các hàm điều khiển này bao gồm:

Trang 20

Trong đó:

- Hàm void lv_initial() dùng để khởi tạo cho mỗi level bao gồm đọc địa

hình vào từ file, khởi tạo địch và một vài thông số khác liên quan tới

level đó

- Hàm int play() dùng để điều khiển tất cả các thao tác của người chơi

và xe tăng của địch khi chơi ở chế độ bắn xe tăng Giá trị trả về của hàm trả về sẽ quyết định thao tác tiếp theo của toàn chương trình

- Hàm int boss() dùng để điều khiển tất cả các thao tác của người chơi

và Boss khi chơi ở chế độ Boss Giá trị trả về của hàm sẽ quyết định

thao tác sẽ thực hiện tiếp theo của toàn chương trình

- Hàm void newgame() sẽ được gọi tới khi người dùng chơi một ván

mới Hàm này sẽ điều khiển toàn bộ quá trình chơi game của người

dùng qua các level Hoạt động của hàm sẽ phụ thuộc vào giá trị trả về của hàm play() và boss() đã được đề cập tới ở trên

- Hàm void continuegame() cũng tương tự như hàm play(), tuy nhiên

hàm này được gọi tới khi người dùng tiếp tục chơi với một trạng thái được lưu từ trước Khi được gọi đến, hàm này sẽ đọc tất cả những thông tin liên quan tới game đã được người chơi dừng lại tại phiên trước; sau khi đọc dữ liệu, quá trình chơi game sẽ được tiếp tục

3.3 Nhóm các hàm đồ họa

3.3.1 Hiển thị một điểm ảnh trên màn hình

Mỗi điểm ảnh trên màn hình chơi game được hiển thị ra bởi hàm

void point(int x, int y, int color=0)

floodfill(X0+xlt+(y-1)*p_size+p_size/2, Y0+ylt+(x-1)*p_size+p_size/2, color);

Y0+ylt+x*p_size-1);

Ngày đăng: 23/11/2014, 06:35

HÌNH ẢNH LIÊN QUAN

Hình 4: Di chuyển xe tăng khi không bị vật cản - Tiểu luận môn Đồ họa máy tính  "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"
Hình 4 Di chuyển xe tăng khi không bị vật cản (Trang 10)
Hình 9: Màn hình Welcome - Tiểu luận môn Đồ họa máy tính  "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"
Hình 9 Màn hình Welcome (Trang 26)
Hình 11: Bảng xếp hạng người chơi - Tiểu luận môn Đồ họa máy tính  "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"
Hình 11 Bảng xếp hạng người chơi (Trang 29)
Hình 12: Giao diện Option - Tiểu luận môn Đồ họa máy tính  "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"
Hình 12 Giao diện Option (Trang 30)
Hình Option ra màn hình. Đối số choice được đưa vào nhằm thông báo  cho hàm biết được chức năng nào đang được người dùng trỏ tới - Tiểu luận môn Đồ họa máy tính  "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"
nh Option ra màn hình. Đối số choice được đưa vào nhằm thông báo cho hàm biết được chức năng nào đang được người dùng trỏ tới (Trang 31)
Hình 14: Giao diện About - Tiểu luận môn Đồ họa máy tính  "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"
Hình 14 Giao diện About (Trang 32)
Hình 16: Level 2 Hình 15: Level 1 - Tiểu luận môn Đồ họa máy tính  "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"
Hình 16 Level 2 Hình 15: Level 1 (Trang 35)
Hình 17: Level 3 - Tiểu luận môn Đồ họa máy tính  "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"
Hình 17 Level 3 (Trang 36)
Hình 18: Level 4 - Tiểu luận môn Đồ họa máy tính  "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"
Hình 18 Level 4 (Trang 36)
Hình 19: Đấu với Boss ở cuối mỗi Level - Tiểu luận môn Đồ họa máy tính  "Mô phỏng game bắn tăng trên máy điện tử cầm tay Brick Game"
Hình 19 Đấu với Boss ở cuối mỗi Level (Trang 37)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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