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

BÀI tập lớn lập TRÌNH HƯỚNG đối TƯỢNG đề tài xây DỰNG một GAME NHẬP VAI SIMPLE RPG

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 (1.28 MB, 32 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG
-----šš&šš-----

BÀI TẬP LỚN
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

ĐỀ TÀI: XÂY DỰNG MỘT GAME NHẬP VAI SIMPLE RPG

Giáo viên hướng dẫn: ThS. Nguyễn Mạnh Tu

STT
1
2
3
4
5

Họ và tên
Phan Ngọc Khải
Nguyễn Hồng
Quế Hịa
Từ Hồng Giang
Nguyễn Tiến Lâm
Trần Đức Hải

Hà Nội – 5/2021


MỤC LỤC
MỤC LỤC....................................................................................................................


DANH MỤC HÌNH ẢNH............................................................................................
LỜI NĨI ĐẦU..............................................................................................................
1. Lý do chọn và tầm quan trọng của đề tài.........................................................
2. Mô tả đề tài.........................................................................................................
3. Q Trình Tiếp Cận..........................................................................................
PHÂN CƠNG THÀNH VIÊN TRONG NHĨM.......................................................
CHƯƠNG 1. KHẢO SÁT, ĐẶC TẢ U CẦU BÀI TỐN...............................

1.1Miêu tả yêu cầu bài toán.................................................

1.2Biểu đồ use case...............................................................

1.2.1Biểu đồ use case tổng qua
1.2.2Biểu đồ use case phân rã m
1.3Đặc Tả Use Case..............................................................
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ BÀI TỐN...........................................

2.1Biểu đồ trình tự...............................................................

2.2Biểu đồ gói và biểu đồ lớp...............................................

2.2.1Tổng Qt gói Gui, Manag
2.2.2Tổng quát gói Actor..........
2.2.3Biểu đồ lớp cụ thể từng ph
2.3Thiết kế chi tiết lớp..........................................................
CHƯƠNG 3. CÔNG NGHỆ VÀ THUẬT TỐN SỬDỤNG..............................

3.1Cơng Nghệ........................................................................

3.2Kiến Thức.........................................................................


3.3Thuật Tốn.......................................................................
CHƯƠNG 4. XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA..............................

4.1Kết quả chương trình minh họa.....................................

4.2Giao diện chương trình...................................................

4.2.1Giao diện chính................
4.2.2Giao diện dừng trị chơi....
4.2.3Giao diện chiến thắng.......


IT3100 – Lập trình hướng đối tượng
4.2.4 Giao diện xử thua cuộc............................................................................
4.3 Kiểm thử các chức năng đã thực hiện.......................................

4.4 Kết luận......................................................................................
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN................................................................
1.

Những mặt đã đạt được.....................................................................................

2.

Những mặt chưa đạt được.................................................................................

3.

Hướng phát triển................................................................................................


TÀI LIỆU THAM KHẢO...........................................................................................

Nhóm 14

2


IT3100 – Lập trình hướng đối tượng

20192

DANH MỤC HÌNH ẢNH
Hình 1 : Biểu đồ tuần tự................................................................................................ 7
Hình 2 : Biểu đồ lớp tổng quát....................................................................................... 8
Hình 3 : Sơ đồ lớp tổng qt gói GUI, Manager, Map, Weapons..................................8
Hình 4 : Sơ đồ lớp tổng qt........................................................................................ 10
Hình 5 : Giao diện chính............................................................................................. 15
Hình 6 : Giao diện hướng dẫn..................................................................................... 16
Hình 7 : Giao diện màn giới thiệu............................................................................... 17
Hình 8 : Giao diện map cụ thể..................................................................................... 17
Hình 9 : Thanh chỉ số của mỗi nhân vật...................................................................... 18
Hình 10 : Giao diện dừng trị chơi............................................................................... 18
Hình 11 : Giao diện chiến thắng.................................................................................. 19
Hình 12 : Giao diện thua cuộc..................................................................................... 19

Nhóm 14
IT3100 – Lập trình hướng đối tượng

3



LỜI NÓI ĐẦU
1. Lý do chọn và tầm quan trọng của đề tài
Khi mới bắt đầu làm quen với lập trình hướng đối tượng thì cách tiếp cận
nhanh chóng mà hiệu quả nhất là đi vào các ví dụ mà ở đó ranh giới giữa các
đối tượng là rõ ràng. Như đã biết, game nhập vai không phải là khuynh hướng
game mới mẻ tuy nhiên đây vẫn luôn là thể loại game được nhiều người yêu
thích. Chúng em cảm thấy đây là một trò chơi rất đỗi quen thuộc và cuốn hút,
đồng thời game nhập vai sẽ là một ví dụ tốt để từng thành viên trong nhóm có
được cái nhìn rõ hơn về mơn học nói riêng và lập trình hướng đối tượng nói
chung. Chính vì lý do này, nhóm chúng em chọn đề tài “Xây dựng một game
nhập vai Simple RPG” để thực hiện chương trình Escape-Ghost demo cho bài
tập lớn mơn học. Chương trình được viết hồn tồn bởi ngơn ngữ lập trình Java
– ngơn ngữ lập trình thuần đối tượng.
Bởi do mới làm quen với ngơn ngữ Java cũng như việc xử lý trong lập trình
hướng đối tượng nên trong chương trình cịn hạn chế là việc khơng tránh khỏi.
Vậy nên nhóm chúng em mong có được nhận xét từ phía thầy về đề tài của
nhóm để có những khắc phục.

2. Mơ tả đề tài
Game nhập vai ESCAPE-GHOST gồm có:
• Menu: hiển thị cho phép người chơi lựa chọn thông tin ( Xem hướng dẫn,

chọn chế độ chơi,…)
• Người chơi (Player): Game có 2 người chơi hỗ trợ nhau trong q trình chơi
• Kẻ địch (Enemy): có khả năng gây sát thương cho player, tấn cơng và di

chuyễn ngẫu nhiên trên bản đồ
• Bản đồ (Map): bao gồm đường đi, đất, nước,…

3.

Quá Trình Tiếp Cận
Chúng em lựa chọn đề tài dựa trên sở thích và khả năng của các thành viên
trong nhóm. Q trình hồn thiện đề tài kéo dài trong vòng 3 tháng bao gồm cả
việc lên ý tưởng, thảo luận để lựa chọn đề tài.

Nhóm 14
IT3100 – Lập trình hướng đối tượng


PHÂN CƠNG THÀNH VIÊN TRONG NHĨM
Họ và tên

Em

Phan Ngọc
Khải

kha

Nguyễn
Hồng Quế
Hịa
Từ Hồng
Giang

hoa

Nguyễn

Tiến Lâm
Trần Đức
Hải

lam

gia

hai

Nhóm 14
5
IT3100 – Lập trình hướng đối tượng


CHƯƠNG 1.

KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI
TOÁN

1.1 Miêu tả yêu cầu bài toán
- Người chơi điều khiển một hoặc nhiều nhân vật trong một bản

đồ được lưu trong một cấu trúc dữ liệu (trên bản đồ có các quái vật có
thể di chuyển được).
- Các nhân vật người chơi điều khiển và quái vật có các chỉ số xác

định tình trạng và thể lực (ví dụ HP, MP, Attack, Defense, Speed,...).
Người chơi có thể tấn cơng qi vật và sử dụng các kỹ năng đặc biệt.
Tương tự, quái vật cũng có thể tìm đến và tấn cơng người chơi.

- Người chơi có thể di chuyển qua lại giữa các bản đồ khác nhau

(ví dụ khi đi vào vùng M0, M1, M2,... trên bản đồ) hoặc đi đến kết thúc
của trị chơi (ví dụ khi đi vào vùng END trên bản đồ).
Đáp ứng yêu cầu bài toán bao gồm:
-

Thể hiện bản đồ và các đối tượng trên bản đồ trên giao diện đồ
họa

-

Điều khiển nhân vật di chuyển

-

Có các thao tác để tấn cơng qi vật

-

Qi vật có khả năng di chuyển và tấn cơng người chơi (qi vật
có thể chia thành nhiều loại: tấn cơng gần, loại có thể tấn cơng /
bắn đạn từ xa, boss,…)

-

Game có hai chế độ chơi dễ / khó theo mức độ “thơng minh”, “di
chuyển nhanh” hoặc “lượng máu” của quái vật

1.2 Biểu đồ use case

1

Biểu đồ use case tổng quan
-

Tác nhân : người chơi 1, người chơi 2

-

Các use case đối với
mỗi người chơi
Bắt đầu game
C
h


ơ
i
g
a
m
e
D

n
g
g
a
m
e

T
h
o
á
t
G
a
m
e
Nhóm 14
IT3100 – Lập trình hướng đối tượng


Hình 1. Use-case chính

2

Biểu đồ use case phân rã mức 2

Hình 2. Use case “Bắt đầu game” phân rã

Nhóm 14
7
IT3100 – Lập trình hướng đối tượng


Hình 3. Use case “chơi game” phân rã đối với người chơi 1

Hình 4. Use case “chơi game” phân rã đối với người chơi 2


1.3 Đặc Tả Use Case

Nhóm 14
IT3100 – Lập trình hướng đối tượng

8
Mã UC
Tác nhân
Điều kiện trước
Luồng thực thi
chính
No.
1.


2.
3.
4.
5
Điều kiện sau

Mã UC
Tác nhân
Điều kiện trước
Luồng thực thi
chính
No.
1.
2.
3.

4.
5.
Điều kiện sau

Mã UC

UC03

Tên

Chơi game
(Player 2)

Nhóm 14
IT3100 – Lập trình hướng đối tượng
Tác nhân
Điều kiện trước
Luồng thực thi
chính
No.
1.
2.
3.


4.
5
6.
Điều kiện sau


Nhóm 14
IT3100 – Lập trình hướng đối tượng

CHƯƠNG 2.
2.1

Biểu đồ trình tự

PHÂN TÍCH THIẾT KẾ BÀI TỐN

10


Hình 1 : Biểu đồ tuần tự

Nhóm 14
IT3100 – Lập trình hướng đối tượng

2.2 Biểu đồ gói và biểu đồ lớp

Hình 2 : Biểu đồ lớp tổng qt
-

Gói Image: Gồm hình ảnh các đối tượng đồ họa dưới dạng các file *.png

11


-


Gói Actor: Gồm mã của nhân vật gồm người chơi, quái vật, boss, ...

-

Gói GUI: Gồm mã của những đối tượng đồ họa

-

Gói map: Gồm mã của bản đồ cùng với quái vật cho từng màn chơi

-

Gói weapons: Gồm mã của các loại vũ khí

-

Gói Manager: Gồm mã của lớp Manager chịu trách nhiệm xử lí va chạm, xử lí
qua màn, kết thúc và bắt đầu game

2.2.1 Tổng Quát gói Gui, Manager, Map, Weapons

Hình 3 : Sơ đồ lớp tổng quát gói GUI, Manager, Map, Weapons
Các gói trong biểu đồ trên thuộc tầng giao diện, nghiệp vụ.
Nhóm 14


IT3100 – Lập trình hướng đối tượng

20192


Có các đối tượng thể hiện các menu, hiển thị nhân vật và các hiệu ứng
động. Tổng quan về các lớp trong gói:
o

Lớp Frame kế thừa từ lướp JFrame hiển thị giao diện trò chơi.

o

Lớp Container kế thừa từ lớp JPanel chịu trách nhiệm hiển thị các giao
diện điều khiển cho người dùng như là màn hình Menu, Tutorial,
MainGame, ... thơng qua card layout, và các mối quan hệ kết tập với các
lớp kết thừa JPanel.

o

Lớp MainGame thể hiện màn hình chơi game của người chơi kế thừa từ
lớp JPanel là nơi thể hiện các đối tượng nhân vật, quái vật, ...

o

Các lớp Tutorial, Menu, End là các JPanel hiển thị màn hình hướng dẫn
menu điều khiển và màn hình kết thúc game.

o

Lớp MyMap lưu giữ thông tin về màn chơi như bản đồ được lưu dưới
dạng mảng 2 chiều, và các ArrayList quái vật của từng màn chơi. Do
điều kiện thử nghiệm nên số lượng map là 4 map với 1 mâp khởi động
cho người chơi làm quen


o

Lớp Manager có các phương thức xử lí va chạm, xử lí các thao tác người
dùng, xử lí các tương tác của các nhân vật với địa hình, nhân vật khác

o

Lớp StatusBar kế thừa từ JPanel hiển thị các thông số của nhân vật

2.2.2 Tổng quát gói Actor

Nhóm 14
IT3100 – Lập trình hướng đối tượng

13


Hình 4 : Sơ đồ lớp tổng qt
Gói thuộc tầng nghiệp vụ.
Gói chịu trách nhiệm lưu giữu thơng tin về các đối tượng nhân
vật . Tổng quan về các lớp trong gói:
o

Lớp Abtract Actor lưu giữ các thuộc tính và phương thưc cơ bản của các
đối tượng nhân vật như các chỉ số HP, MP, speed,... các phương thức
chung như move, kill,...

o

Lớp Abtract LongRange kế thừa từ lớp Actor lưu giữ các thuộc tính và

phương thưc cơ bản của các đối tượng nhân vật có tầm đánh xa. Lớp này
sở hữu một đối tượng vũ khí là Bullet.

o

Lớp Abtract ShortRange kế thừa từ lớp Actor lưu giữ các thuộc tính và
phương thưc cơ bản của các đối tượng nhân vật có tầm đánh ngắn(do
điều kiện đồ họa nên phương thức tấn công của các đối tượng này là gây
sát thương khi va chạm với nhân vật khác).

o

Các lớp thực thi Hunter, Ghost, Monster, Dog thể hiện các nhân vật
người chơi và quái vật kế thừa từ các lớp Abstract trên.

o

Lớp MyAdapter có các phương thức lắng nghe tác động điều khiển nhân
vật cũng như lắng nghe tín hiệu tạm dừng game của người chơi

Nhóm 14
IT3100 – Lập trình hướng đối tượng

2.2.3 Biểu đồ lớp cụ thể từng phần


Nhóm 14

15



IT3100 – Lập trình hướng đối tượng

20192

2.3 Thiết kế chi tiết lớp
Các lớp quan trọng: MyMap, Container, Ghost, Manager, Actor, MainGame.
Mơ tả mẫu CRC:

MyMap
MainGame
Dog
Hunter

Tạo bản đồ, qi vật.
Setup vị trí và số lượng quái
trong từng màn.

Container
Hiển thị giao diện điều khiển
cho người chơi ( Menu, tutorial,
end, maingame,…)

MainGame
Tutorial
Menu
End

Thiết lập các chỉ số: HP, MP,
Speed, atk,…các image ứng với

các trạng thái di chuyển.
Thiết lập di chuyển cho nhân vật
Ghost.

Nhóm 14
IT3100 – Lập trình hướng đối tượng

16


Manager
Xử lí va chạm, tương tác với
người chơi.
Xử lí tương tác của nhân vật với
địa hình, quái vật và nhân vật khác.

Bullet
Dog
Hunter
MainGame

Actor

Tạo các thuộc tính cho nhân vật và
quái như: HP, Max_HP, MP,
Max_MP, defaultSpeed, speed, atk,
defense, status, dead, type,…

MainGame
LongRange

ShortRange

MainGame
MyMap
Hiển thị nhân vật, quái vật, map,
Monster
… trên màn hình chơi game.
Hunter
Thiết lập chức năng phím tắt.
MyAdapter
Kiểm tra trạng thái nhân vật,
Manager
quái vật
Dog
(dead, live)
Ghost

Nhóm 14

17


IT3100 – Lập trình hướng đối tượng

20192

CHƯƠNG 3. CƠNG NGHỆ VÀ THUẬT
TỐN SỬDỤNG
3.1


Cơng Nghệ
-

3.2

Mơi trường lập trình : Eclipse
Phần mềm quản lý mã nguồn : Github

Kiến Thức

Bài tập lớn gồm lượng lớn kiến thức về phân tích và thiết kế hướng đối tượng. Cụ
thể như sau:
- Mơ hình lập trình: hướng đối tượng
- Các nguyên lý trong lập trình hướng đối tượng: đóng gói, kế thừa, đa
hình, interface,…
- Ngơn ngữ: ngơn ngữ lập trình hướng đối tượng Java
- Cơ bản về cơ sở dữ liệu và thiết kế cơ sở dữ liệu cho game

3.3

Thuật Tốn

Nhóm 14
IT3100 – Lập trình hướng đối tượng

18


CHƯƠNG 4. XÂY DỰNG CHƯƠNG
TRÌNH MINH HỌA

4.1

Kết quả chương trình minh họa

Nhìn chung sản phẩm minh họa khá thành cơng vì đã thực hiện được hầu hết các yêu
cầu đưa ra:
- Thể hiện bản đồ và các đối tượng trên bản đồ trên giao diện đồ họa - Điều khiển
nhân vật di chuyển
- Có 2 người chơi với phím di chuyển và kỹ năng khác nhau :
Người chơi 1 có khả năng di chuyển và tấn công quái bằng súng
Người chơi 2 có khả năng đốt quái ở trong phạm vi gần, dịch chuyển đến
vị trí người chơi 1 và hồi máu cho cả 2
- Quái vật có khả năng di chuyển và tấn cơng người chơi
- Game có hai chế độ hơi dễ/khó theo mức độ “thơng minh”, “di chuyển nhanh”
hoặc “lượng máu” của quái vật
- Có thể dừng game để tiếp tục sau 1 khoảng thời gian
Game nhập vai Escape Ghost có chức năng chính như sau :
- Giao diện khi vào game có Tutorial giúp người chơi có thể biết được kỹ năng
của mỗi người chơi và hiểu về cách thức để chiến thắng game
- Khi vào game người chơi có thể chọn 2 chế độ chơi :
Play Easy : trong chế độ này người chơi 1 khơng thể tấn cơng được người
chơi 2, qi vật có chỉ số thấp hơn
Play Hard : ở chế độ này người chơi 1 có thể tấn cơng người chơi 2 đồng
thời tang chỉ số của quái vật
- Người chơi có thể dừng game với phím P và tiếp tục game sau khi nhấn nút
Space
- Người chơi vượt qua mỗi màn chơi bằng cách đi vào bụi cỏ ở bên phải màn
hình sau khi tiêu diệt quái vật
- Nhân vật 1 được điều khiển di chuyển bằng các phím ↓ ↑ ← → và tấn cơng
qi vật bằng phím Enter

- Nhân vật 2 được điều khiển di chuyển bằng các phím W S A D và có các kỹ
năng như thiêu đốt quái xung quanh, dung phím B để dịch chuyển đến nhân vật
1 và hồi máu bằng phím N
- Người chơi có thể bị xử thua sau khi 1 trong 2 nhân vật hết lượng máu (HP) của
mình

4.2

Giao diện chương trình

Nhóm 14
IT3100 – Lập trình hướng đối tượng

19


4.2.1 Giao diện chính

Hình 5 : Giao diện chính

- Trên giao diện chính của game gồm có 3 chức năng chính :
TUTORIAL : Xem hướng dẫn game

Nhóm 14
20


IT3100 – Lập trình hướng đối tượng

20192


Hình 6 : Giao diện hướng dẫn

PLAY EASY : Chơi ở chế độ dễ
PLAY HARD : Chơi ở chế độ khó
Dù chơi ở chế độ nào người chơi cũng bắt đầu ở một màn chơi khơng có qi
vật để làm quen với game ( di chuyển và sử dụng skill đối với mỗi nhân vật)

Nhóm 14

21


IT3100 – Lập trình hướng đối tượng

20192

Hình 7 : Giao diện màn giới thiệu

Sau khi vượt qua màn giới thiệu giao diện trong game sẽ thay đổi vào
giao diện mỗi map

Hình 8 : Giao diện map cụ thể

Nhóm 14
IT3100 – Lập trình hướng đối tượng

22



Trong màn giới thiệu và kể cả màn chơi thông số của nhân vật 1 và
nhân vật 2 đều được nêu rõ ở thanh dưới màn hình

Hình 9 : Thanh chỉ số của mỗi nhân vật
Trong đó
Ghost HP là lượng máu của nhân vật 1
Ghost MP là mana dùng để tấn cơng của nhân vật 1 ( có thể hồi lại
khi đạn trúng vật cản hoặc đi ra ngoài map)
Ghost-ATK là chỉ số tấn công của nhân
vật 1 Monster HP là lượng máu của
nhân vật 2
Monster MP là lương mana để sử dụng kỹ năng của nhân vật 2
Monster-ATK là số dame đốt quái xung quanh mỗi giây của nhân
vật 2 Monster AT-Ranger là phạm vi đốt quái vật của nhân vật 2

4.2.2 Giao diện dừng trị chơi

Hình 10 : Giao diện dừng trị chơi

4.2.3 Giao diện chiến thắng
Nhóm 14
23


×