Tải bản đầy đủ (.pdf) (14 trang)

Bài tập lớn Python phát triển game GHOSTBUSTERS

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 (908.41 KB, 14 trang )

Lời nói đầu
Python là ngơn ngữ lập trình phổ biến và đa dạng, nó ứng dụng rất nhiều trong thời
buổi cơng nghệ phát triển ngày nay, trong đó có ngành phát triển game. Đây là thể loại
game đa dạng và phổ biến với sự phát triển và kết hợp giữa ngơn ngữ lập trình mạnh mẽ
của python và các thư viện đa dạng như Pygame, chúng em đã phát triển từ mã nguồn gốc
có sẵn để tạo lên một trị chơi hoàn chỉnh và đặc sắc hơn. Do đây mới chỉ là thành quả bọn
em nghiên cứu, hợp tác và phát triển nên cịn rất nhiều thiếu sót cũng như nhiều thứ không
hiểu phải nhờ cũng như tham khảo cách làm từ nhiều nguồn nên còn nhiều hạn chế, mong
thầy thông cảm.

1


Mục lục:
I.
II.
III.
IV.
V.
VI.

Giới thiệu……………………………………………………….4
Phương pháp nghiên cứu và cải tiến …………………………...4
Cơ chế hoạt động và cách chơi…………………………………7
Kết luận………………………………………………………..14
Tài liệu tham khảo…………………………………………….15
Phân công nhiệm vụ ………………………………………….15

2



I.

Giới thiệu:
-

-

-

-

II.

GhostButterV1 là một trò chơi điện tử hành động với cốt truyện hấp dẫn, đồ họa 2D
đẹp mắt và lối chơi đầy thử thách. Trong trò chơi này, người chơi sẽ nhập vai 1
thành viên trong nhóm Ghostbusters – những người diệt quỷ đang trải qua những
cuộc phiêu lưu đầy mạo hiểm để tiêu diệt những con ma, quỷ dữ và hồn ma đang
hoành hành khắp nơi.
Với đội ngũ Ghostbusters chuyên nghiệp và trang thiết bị hiện đại, người chơi sẽ
phải khám phá, điều tra và chống lại các hoạt động siêu nhiên đáng sợ trong những
địa điểm khác nhau. Họ sử dụng những vũ khí độc đáo và các kỹ năng đặc biệt,
người chơi sẽ phải đối mặt với những thách thức và giải quyết những bí ẩn hết sức
nguy hiểm.
Ngồi cốt truyện chính, GhostBusterv1 cũng có nhiều sự lựa chọn nhân vật đa dạng
cho phép người chơi thỏa sức khám phá và tận hưởng trải nghiệm chơi game. Đồ
họa được thiết kế đơn giản nhưng đẹp mắt và ấn tượng, đặc sắc khiên người chơi
gần như sống trong thế giới game đầy cảm xúc.
GhostBustersv1 là 1 tựa game hồn hảo cho những người u thích thể loại game
hành động, đem lại trải nghiệm đáng nhớ và căng thẳng đến từng giây phút chơi
game. Sẵn sàng đối đầu với những hồn ma tội ác và trở thành người hung tiêu diệt

ma quỷ trong thế giới của GhostBustersV1.

Phương pháp nghiên cứu và cải tiến:
a. Phương pháp nghiên cứu

- Với mã nguồn được lấy từ Github, chúng em nghiên cứu và phát triển, tạo ra con
game hoàn chỉnh hơn và hấp dẫn hơn.

- Từ mã nguồn chính, chúng em them vào một số nhân vật cũng như hiệu ứng kỹ
năng, them vào các màn chơi cũng như các hoạt động, cách di chuyển của nhân vật
cũng như của các hồn ma trong trò chơi.

- Mã nguồn mới được phát triển hầu hết dựa vào mã nguồn chính, chủ yếu xoay quanh
pygame( thư viện của Python dùng để phát triển game ), sử dụng các công cụ, chức
năng của pygame để tạo đồ họa, âm thanh, xử lý dữ liệu người dùng, tương tác với
các thành phần khác trong trò chơi như cửa sổ, chuột, các phím và hệ thống vật lý.

3


- Về phần dữ liệu chúng em sử dụng thư viện JSON được tích hợp sẵn trong thư viện
chuẩn của Python cho phép các ứng dụng python có thể trao đổi dữ liệu với các ứng
dụng khác, đọc và ghi dữ liệu dưới định dạng JSON.

- Về cấu hình, sử dụng module ConfigParser xử lý phân cấp, chia nhóm và truy cập
các giá trị cấu hình, giúp tách biệt giữa dữ liệu cấu hình và mã nguồn của chương
trình game.

- Pickle: serialize và deserialize, chuyển đổi các đối tượng thành dạng dữ liệu nhị
phân có thể lưu trữ trên đĩa hoặc truyền qua mạng và sau đó đọc lại và chuyển đổi

trở lại thành các đối tượng.

- Pygame.init(): khởi tạo môi trường pygame và chuẩn bị các module cần thiết để sử
dụng trong pygame.

- Pygmae.display.set_model(): sử dụng để tạo một cửa sổ đồ họa cho trị chơi. Cấu
hình các thơng số kích thước, độ phân giải và chế độ màn hình.

- Pygame.display.update(): sử dụng để cập nhật nội dung của cửa sổ đồ họa. hiện đồ
họa hiển thị lên màn hình.

- Pygame.event.get(): sử dụng xử lý sự kiện, bàn phím, chuột và cửa sổ. trả về danh
sách các đối tượng sự kiện cho phép kiểm tra và xử lý các sự kiện trong trò chơi.

- Pygame.draw: cung cấp các hàm để vẽ hình học đơn giản, vẽ các đối tượng đồ họa
trên cửa sổ pygame.

- Pygame.image: cung cấp hàm xử lý ảnh, vẽ hình ảnh lên cửa sổ pygame,..
- Pygame.sprite: cung cấp cơ chế để quản lý vẽ các đối tượng đồ họa động. các đối
tượng được vẽ lên màn hình pygame và có thể được di chuyển, xử lý va chạm,..

- Pygame.time: cung cấp các hàm để xử lý thời gian trong trò chơi.
- Pygame.font: cung cấp hàm để làm việc với phông chữ.
- Về phần nhân vật, một số nhân vật có sẵn trong mã nguồn gốc của chương trình,
cùng với các hiệu ứng kỹ năng, cách di chuyển, vũ khí là do mã nguồn gốc cung
cấp, ngồi ra, bọn em có tự tay thiết kế them một số nhân vật với các kỹ năng cũng
như cách di chuyển, chuyển động khác để tăng them phần trải nghiệm cho trò chơi.

- Sử dụng hàm reset_level(level): để đặt lại cấp độ game, xóa các đối tượng trong
game, tải lại dữ liệu của cấp độ và tạo lại thế giới của cấp độ trong game.


- Sử dụng hàm get_info_plater(type_): để lấy thông tin nhân vật trong game trên
loại type_ của nhân vật đó như các tệp cấu hình được lưu trữ, đối tượng đọc cấu
4


hình, nơi lưu trữ thơng tin nhân vật, các thuộc tính của nhân vật, hình ảnh, kỹ năng
của nhân vật,…

- Sử dụng hàm reset_player(): dùng để thiết lập lại trạng thái của nhân vật trong
game bao gồm các cập nhật thơng tin của nhân vật từ tệp cấu hình và tạo lại đối
tượng nhân vật từ lớp tương ứng, cũng như khởi tạo lại các biến liên quan đến trạng
thái di chuyển của nhân vật.

- Sử dụng hàm load_data_continue_pre_game(): dùng để lưu trữ dữ liệu trạng thái
của trò chơi từ tệp tin lưu trữ, đồng thời cập nhật lại thông tin nhân vật trong game
như level, health, grenades, scoures,..

- Sử dụng hàm draw_image_skill: để tạo hình ảnh kỹ năng và thời gian hồi chiêu
của các kỹ năng của từng nhân vật trong trò chơi sử dụng một số hàm và lớp có sẵn
trong pygame được sử dụng như pygame.draw.rect(), pygame.sprite.Group(),
pygame.event.get(),…. Để duyệt những sự kiện, tạo hình trên bề mặt trò chơi, …

- Giao diện đồ họa 2D hầu như giữ nguyên so với mã nguồn gốc, chúng em them một
số màn chơi cũng như các tính năng qua màn, hi sinh và tính điểm, sắp xếp lại một
số bố cục không hợp lý ở mã nguồn gốc cũng như tăng tính hài hịa về màu sắc, âm
thanh, tạo cho người chơi có thể hịa nhập vào game một cách dễ dàng hơn.

- Tất cả những gì mà chúng em thêm vào so với mã nguồn gốc đều có sự trao đổi và
nhất trí của tất cả các thành viên trong nhóm, mặc dù nhiều chỗ chúng em chưa hiểu

và cũng chưa thể chữa lỗi nhưng chúng em đã biết cách tạo nhân vật cũng như một
giao diện đồ họa đơn giản.

b. Các cải tiến đã thực hiện

- Màn hình chờ và giao diện chơi:
 Game ban đầu:
 Khơng có thống kê điểm người chơi
 Không thể tạm dừng khi bắt đầu
 Khơng có giao diện chọn nhân vật
 Khơng thể lưu game và tiếp tục chơi
 Màn hình chờ khơng có thao tác sử dụng nhân vật
5


 Đã được cải tiến

- Cách chơi:
 Game ban đầu:
 Chỉ có 1 nhân vật (Snow)
 Nhân vật chỉ tấn cơng được bên trái
 Khơng có thời gian chơi
 Khơng có điểm vịng chơi
 Khơng thống kê lần chết

- Màn chơi: Chỉ có 1 giao diện màn chơi
6


III. Cơ chế hoạt động, cách chơi

- Mô tả lại về game: Game GhostBustersV1 là thể loại game hành động nhập vai,
người chơi sẽ nhập vai vào 1 trong những thành viên của quân đoàn GhostBuster để
tiến hành cuộc phiêu lưu diệt quỷ của mình của mình. Trong chuyển phiêu lưu săn
quỷ, chúng ta sẽ gặp những con quỷ và nhiệm vụ phải tiêu diệt chúng mới được tiếp
tục cuộc hành trình.

- Giao diện bắt đầu trị chơi:

- Từ giao diện chính của trị chơi, chúng ta có 3 phần: continue, play, scoreboard,
controls, exit

 Continue: tiếp tục khi người chơi dừng trò chơi
 Play: bắt đầu trò chơi mới:
 Chọn nhân vật: Mỗi nhân vật, có các thuộc tính, vũ khí, chiêu thức riêng, người chơi
có thể xem được sức tấn công, cách di chuyển, cách dùng chiêu thức trước khi chọn.
chúng ta có 5 nhân vật: Snow, Ignis, warrior, Knight, Archer.

 Snow:

7


 Ignis:

 Warrior:
8


 Knight:


 Archer:
9


 Sau khi lựa chọn được nhân vật, người chơi ấn Select để bắt đầu:
 Màn hình bắt đầu:

10


 Trên màn hình có hiện lên số mạng chết, cấp độ(màn), điểm số đạt được, số mạng
còn lại, kỹ năng.
Số mạng chết:

Cấp độ:
Số điểm đạt được:
Thời gian chơi:
Kỹ năng nhân vật:
+ Snow:
+ Ignis:
+ Warrior: 2 kỹ năng
+ Knight:
+ Archer:

 Các hồn ma:
 Các viên đá quý:

 Các bình thuốc :
 Và các chướng ngại vật:
11



 Người chơi sử dụng nhân vật đã chọn để đi tiêu diệt những hồn ma cùng với việc
thu thập đá q để nâng cao điểm số của mình, trị chơi có rất nhiều màn chơi, người
chơi tiêu diệt hết hồn ma để qua màn, tạo cho người chơi 1 cuộc phiêu lưu gay cấn
và cam go.
 Scorebroad ( điểm số và xếp hạng ): tại đây, người chơi có thể xem điểm số và xếp
hạng của mình sau mỗi lượt chơi.

 Controls ( hướng dẫn cách chơi ):

12


Người chơi sử dụng các phím lên xuống, sang trái sang phải để điều khiển nhân vật
của mình, sử dụng phím Space để sử dụng kỹ năng, sử dụng phím Q để dừng trị
chơi và trở về màn hình chính
 Cuối cùng là exit: khi muốn thốt trị chơi, người chơi chỉ cần về màn hình chính và
ấn vào nút exit để thốt trị chơi.
-

IV.

Kết luận:

-

GhostButtersV1 là một tựa game phiêu lưu mạo hiệm được phát triền bằng ngôn
ngữ lập trình Python, ngơn ngữ lập trình phổ biến và vơ cùng đa dạng.
Nội dung hấp dẫn : Game có nội dung và cốt truyện cùng với mục tiêu rõ rang và

có thử thách nhất định cho người chơi.
Tính đa dạng và phong phú: Game có nhiều tính năng cũng như lựa chọn nhân vật
đa dạng với nhiều ohong cách chơi giúp người chơi có thể trải nghiệm.
Đồ họa và âm thanh hấp dẫn: với đồ họa 2D đẹp mắt cùng với âm thanh bắt tai tạo
sự hài hòa cho trò chơi.

13


-

Trị chơi có phần tính điểm cũng như xếp hạng sau mỗi lần chơi tạo sự thử thách
lớn cho người trải nghiệm.

14



×