Tải bản đầy đủ (.doc) (47 trang)

Báo cáo đề án cuối kỳ developing game 2d in java

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.02 MB, 47 trang )

PROGRAMMING
METHODS
[DEVELOPING GAME 2D IN JAVA]
[General view about: features, technological
applications, program structure ]
Page2
DEVELOPING GAME 2D IN JAVA [Đe án môn Các Phương Pháp Lập Trình]
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MÈM
Bộ môn: CÁC PHƯƠNG PHÁP LẬP TRÌNH
BÁO CÁO ĐÈ ÁN CUỐI KỲ
DEVELOPING GAME 2D IN JA VA
Danh sách nhóm:
1. NGUYỄN PHƯƠNG ANH 06520017
2. HUỲNH TUẤN ANH 06520012
3. TRẦN ĐỨC CHINH 06520045
Niên khỏa: 2006-2010
MỤC LỤC
DEVELOPING GAME 2D IN JAVA [Đe án môn Các Phương Pháp Lập Trình]
Page 3
PROGRAMMING
METHODS
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MÈM Bộ môn: CÁC PHƯƠNG PHÁP LẬP TRÌNH
BÁO CÁO ĐÈ ÁN CUỐI KỲ
MỤC LỤC
1.GIỚI THIỆU TỎNG QUAN VÈ ĐÈ TÀI
2.GAME TETRIS
2.1Giỏi thiêu về Game Tetris:
Sơ ĐỎ NGỮ CẢNH CỦA GAME:
Sơ ĐÒ PHÂN RÃ CHỨC NẴNG:


BĨẺU ĐÒ LUỒNG DỬ LIÊU:
2.2Hướng dẫn sử dung chương trình:
Page4
DEVELOPING GAME 2D IN JAVA [Đe án môn Các Phương Pháp Lập Trình]
2.3Tên và tính năng của các lớp chính trong chương trình:
3.GAME BATTLE TANK
3.1Giói thiêu về Game BattleTank:
NÔI DUNG:
Sơ ĐÒ NGỮ CẢNH CỦA GAME:
sơ ĐÒ PHẢN RẴ CHỨC NẤNG:
BĨẺU ĐÒ LUỒNG DỬ LIÊU:
3.2Hướng dẫn sử dụng chương trình:
3.3Tên và tính năng của các lớp chính trong chương trình:
Eagle:
4.1 Giỏi thiêu về Game AirStrike:
NÔI DUNG:
Sơ ĐỎ NGỮ CẢNH CỦA GAME:
Sơ ĐÒ PHÂN RÃ CHỨC NẴNG:
BĨẺU ĐÒ LUỒNG DỬ LIÊU:
4.2Hưỏng dẫn sử dung chương trình:
DEVELOPING GAME 2D IN JAVA [Đe án môn Các Phương Pháp Lập Trình]
Page 5
4.3Tên và tính năng của các lớp chính trong chương trình:
5. TÀI LIỆU THAM KHẢO
1.
1. GIỚI THIỆU TỎNG QUAN VÈ ĐÈ TÀI
_______***_________
Nôi duns:
- Xây dựng game Tetris (xếp gạch), BattleTank (Bắn xe tăng), AirStrike (Bắn máy
bay).

Muc tiêu:
- Playable finished game.
- Music & sound effects.
- Giao diện thân thiện, giúp người chơi game dề dàng sử dụng.
Côns nghê sử duns:
- Các game được xây dựng bằng ngôn ngữ Java dựa trên bộ công cụ JCreatorPro 4.0
va J2SDK 1.4.2.16.
Các lớn chính đươc sử duns irons 3 same:
- Package com.graphics:
+ Lóp ScreenManager quản lý việc khởi tạo và hiến thị chế độ fullscreen cho game.
• public DisplayMode fmdFirstCompatibleMode(DisplayMode modes[]):
Tìm kiếu hiến thị cho màn hình thích họp đầu tiên trong danh sách kiếu màn
hình. Trả về null nếu không có kiểu hiển thị thích hợp cho màn hình.
• public void setFullScreen(DisplayMode displayMode): Tạo chế độ hiển thị
toàn màn hình. Chế độ hiến thị này sử dụng 2 bộ đệm BufferStrategy.
• public Graphics2D getGraphics(): Lap device hiển thị đồ họa, ScreenManager
sử dụng bộ đệm đôi nên chương trình phải gọi updateQ đế hiến thị bất kỳ công
Page6
DEVELOPING GAME 2D IN JAVA [Đe án môn Các Phương Pháp Lập Trình]
việc vẽ đồ họa nào.
• public void update(): Cập nhật hiển thị.
• public void restoreScreen(): Trả lại chế độ hiến thị trước khi chơi game.
+ Lóp Sprite quản lý hình ảnh và chuyển động của các vật thể trong game, mỗi
Sprite có nhiều frame và giá trị của frame hiện thời currFramelndex.
• public Sprite(): Tạo một đối tượng Sprite với hiệu túng chuyển động.
• public synchronized void addFrame(Image image): Thêm frame cho Sprite.
• public synchronized Image getlmage(): Lap frame của Sprite hiện thời.
- Package com.input:
+ Lóp InputManager quản lý việc nhập liệu từ bàn phím và sự kiện chuột. Những sự
kiện này được truyền cho lóp GameAciton xử lý.

- Package com.test:
+ Lớp GameCore là lóp trừu tượng cho việc xử lý của game, Lớp con được thừa kế
từ lớp này sẽ là lóp chứa các phương thức:
• public void gamelnit : tạo hiến thị fullscreen và khởi tạo các đối tượng.
• public void gameLoop: chạy trong suốt game loop cho đến khi stopO được
gọi.
• public void stop(): báo hiệu cho game loop biết rằng đây là thời điểm đế
thoát.
- Package com.sound:
+ Lóp SoundManager là quản lý việc phát âm thanh trong game.
SoundManager là một ThreadPool. Mỗi thread có thể phát một file âm thanh
• public InputStream play(Sound sound): phát một âm thanh.
• public InputStream play(Sound sound, SoundFilter filter,boolean loop):
phát một âm thanh với sự chọn lựa SoundFilter và loop.
DEVELOPING GAME 2D IN JAVA [Be an mon Cac Phirong Phap Lap Trinh]
Page7
+ Lap MidiPlayer dung de phat am thanh co dinh dang *.mid.
Người Chơi
Page8
DEVELOPING GAME 2D IN JAVA [Đe án môn Các Phương Pháp Lập Trình]
2. GAME TETRIS
2.1 Giỏi thiêu về Game Tetris:
Sơ ĐỎ NGỮ CẢNH CỦA GAME:
Game gồm hai phần cơ bản : play game và player’s guide có mô hình chung
như sau :
Khởi động trò chơi
Hướng dẫn người
chơi
Thoát game
Sơ ĐÒ PHÂN RÃ CHỨC NẴNG:

Các chức năng chính của trò chơi như sau :
DEVELOPING GAME 2D IN JAVA [Đe án môn Các Phương Pháp Lập Trình]
Page9
Người chơi
2.0 1.0
Xem thông tin Chơi
( 'N
3.0
Thoát game
V________________
J
A
Tăng điếm, tăng cấp độ
BĨẺU ĐÒ LUỒNG DỬ LIÊU:
Start Game
c
rameo ver
2.2 Hướng dẫn sử dung chương trình:
- Khi khài dông game së co Menu cho nguài chai lira chon:
Game Info
Exit

- Khi chon Start game, game së dugc bât dâu.
*Khi xép dirge mot háng, ngiroi chai sé dirge thiráng 10 diem
*Sau khi xép dirge 10 hang, cap do sé táng lén, túc la vién gach sé roi nhanh han, có 10
cap do.
DEVELOPING GAME 2D IN JAVA [Đe án môn Các Phương Pháp Lập Trình]
Pagel13
- Trong quá trình chơi, người chơi có thế bấm phím Esc đế dừng game lại.
Press c to continue

- Khi chọn Game Info ở Main Menu, bảng hướng dẫn cách điều khiến sẽ hiện ra.
Scoring:
The score value increases 10
points for one erased row.
Keyboard Controls:
“Left” - Move Left
“Right” - Move Right
“Up” - Rotate Right
“Down” - Move Dow n
“Esc” - Pause
- Chọn Exit ở Main Menu đê thoát khởi game!
2.3 Tên và tính năng của các lớp chính trong chương trình:
Tetris: lớp chính
void gameĩnit(): load hình ảnh và âm thanh cho game, void update(long
elapsedTime): cập nhật các đối tượng cho game, void draw(Graphics2D g):
vẽ các đối tượng cho game, void upnext(): tạo trạng thái kế tiếp cho gạch,
void dropdown(): cho khối gạch rơi. void check_lose(): kiêm tra thua, void
check_score(): kiêm ra ăn diêm.
Button: quản lý các button
void Render(Graphics2D g): vẽ button.
Score: quản lý hình ảnh số điểm và số mạng cho nguời chơi.
DEVELOPING GAME 2D IN JAVA [Đe án môn Các Phương Pháp Lập Trình]
Pagel16
Hệ thống
V

J
3. GAME BATTLE TANK
3.1 Giói thiêu về Game BattleTank:
NÔI DUNG:

Nhiệm vụ của người chơi là chiến đấu với các xe tăng địch qua 3 màn để bảo
vệ chính mình và bảo vệ nhà chính. Neu nhà chính bị bắn hoặc người chơi hết
mạng thì game over, nếu qua được màn 3 thì nhiệm vụ của người chơi hoàn thành.
Sơ ĐÒ NGỮ CẢNH CỦA GAME:
Khởi động trò
chơi
Người Chơi
Thoát trò trò
sơ ĐÒ PHẢN RẴ CHỨC NẤNG:
Các chức năng chính của trò chơi như sau :
Người chơi
1.0
A
Chơi
V
)
G
DEVELOPING GAME 2D IN JAVA [Đe án môn Các Phương Pháp Lập Trình]
Page17
BĨẺU ĐÒ LUỒNG DỬ LIÊU:
Start Game
ameover
r
A
2.0
Thoát trò chơi
V
A
Bảo vệ nhà chính, qua màn, về nước.
- Khi khởi động game sẽ có Menu cho người chơi lựa chọn:

3.2 Hướng dẫn sử dụng chương trình:
- Khi chọn Start game, game sẽ được bắt đầu.
- Người chơi sẽ tiếp tục đi qua các màn 1, 2, 3 cho đến khi hoàn thành nhiệm vụ.
- Khi bắn chết xe tăng có màu đỏ thì có 1 trong 4 bonus xuất hiện, các bonus là
thưởng mạng, bom làm chết 1 mạng của các xe tăng đối thủ, xẻng làm xây lại nhà
chính.
- Trong quá trình chơi, nếu bị chết hết mạng hoặc nhà chính bị bắn thì bảng thông báo
game over sẽ xuất hiện, người chơi có thể chọn New Game để chơi lại từ đầu hoặc
Exit đế thoát game.
3.3 Tên và tính năng của các lớp chính trong chương trình:
BattleTank: lóp chính
void gameĩnit(): load hình ảnh và âm thanh cho game.
void update(long elapsedTime): cập nhật các đối tượng cho game.
void draw(Graphics2D g): vẽ các đối tượng cho game.
update_left(Tank Player): kiếm tra trái của Player nếu đi được sẽ cho đi.
Tương tự cho update_right(Tank Player), update_up(Tank Player), update_down(Tank
Player).
void Run(Tank Coml,Tank Com2,Tank Com3,Tank Com4): tạo di chuyển
cho các xe tăng địch, ở màn 1 các xe tăng chỉ di chuyển cho đến khi gặp chướng ngại vật
sẽ đối hướng ngẫu nhiên 4 hướng cho đến khi gặp được hướng đi được, còn ở màn 2 và 3
thì xe tăng đỏ và xe tăng xanh đậm chỉ đối 3 hướng là phải, trái và xuống, không hướng
lên đế 2 xe tăng này bắn nhà chính tạo độ khó cho người chơi.
void checkexplo(Bullet bullet,Tank tank): kiếm tra va chạm đạn của xe tăng.
void Shoot(Tank Com 1,Bullet bull): phương thức bắn đạn cho các xe
tăng đối thủ.
void BonusAppear(): bonus xuất hiện ngẫu nhiên 1 trong 3 thưởng mạng,
xẻng xây nhà chính hoặc bom làm nố hết các xe tăng địch.
void NewGame(): thiết lập lại các thuộc tính cho game để người chơi chơi
lại tù' đầu.
Bonus:

void Appear(): cho bonus xuất hiện khi bắn trúng xe tăng đỏ.
Bullet:
void SetSpeed(long x): thiết lập thuộc tính tốc độ cho viên đạn.
long GetSpeedQ: lấy tốc độ của đạn.
boolean GetCanShot(): trả về giá trị true nếu xe tăng được bắn tiếp, void
SetCanShot(boolean x): thiết lập thuộc tính được phép bắn cùa xe
tăng.
void Setdr(int x): thiết lập hướng cho viên đạn. void ShootUpO: bắn đạn
hướng lên. void ShootDown(): bắn đạn hướng xuống, void ShootLeft(): bắn
đạn hướng qua trái, void ShootRight(): bắn đạn hướng qua phải.
Digit: tạo hình ảnh là số mạng của người chơi và xe tăng đối thủ.
Eagle:
void SetGameOver(boolean x): thiết lập thuộc tính game over nếu nhà
chính bị bắn.
boolean GetGameOver(): trả vể true nếu nhà chính bị bắn.
GameOver: thừa kế từ lớp Sprite, cho xuất hiện bảng thông báo game over nếu
người chơi hết mạng hoặc nhà chính bị bắn.
Tank: quản lý, thiết lập các thuộc tính cho các đối tượng xe tăng.
void SetLife(int x): thiết lập mạng cho xe tăng.
int GetLife(): lấy thuộc tính mạng của xe tăng.
void SetDead(boolean x): cho xe tăng biến mất nếu bị trúng đạn.
void SetLastRun(long x): thiết lập thuộc tính thời gian cho lần di chuyển
trước.
void SetLastDead(long x): thiết lập thuộc tính thời gian khi biến mất để tạo
lần xuất hiện tiếp theo.
void SetID(int x): định danh cho xe tăng.
void Setdr(int x): thiết lập hướng cho xe tăng.
void NextUpO: cho frame kế tiếp của xe tăng xuất hiện, tạo hiệu ứng
hình ảnh chuyến động của xe tăng đi lên. Tương tự cho NextDown(), NextRightO,
NextLeft().

void MoveUpO: di chuyến lên. Tương tự cho MoveDown(), MoveRight(),
MoveLeft().
classmap: tạo bản đồ cho game.
mapỉtem: đối chiếu với class map để vẽ bản đồ lên màn hình, như cây cối, gạch,
biển, tường.
4
Người Chơi
. GAME AIRSTRIKE
4.1 Giỏi thiêu về Game AirStrike:
NÔI DUNG:
Vào thế chiến II, quân đội của Mỹ tấn công Liên Xô. Lúc đó, Bộ Tư lệnh
không quânViệt Nam đã phái 01 chiếc trục thăng mang tên Atomic Helicopter để
giúp đờ không quân Liên Xô.
Nhiệm vụ của Atomic Helicopter là chiến đấu ở 3 thành phố Dictastrolka,
Tankylavania và Blastnya - nơi chiến đấu với hạm đội hải quân đê hoàn thành
nhiệm vụ.
Sơ ĐỎ NGỮ CẢNH CỦA GAME:
Game gồm hai phần cơ bản : play game và player’s guide có mô hình chung
như sau :
Khởi động trò chơi
Hướng dẫn người
chơi
Thoát game
Sơ ĐÒ PHÂN RÃ CHỨC NẴNG:
Các chức năng chính của trò chơi như sau :
Người chơi
2.0 1.0
Xem thông tin Chơi
r


\
3.0
Thoát game
V________________
J
A
Tăng điêm, thưởng mạng, qua màn
BĨẺU ĐÒ LUỒNG DỬ LIÊU:
Start Game
c
rameo ver
4.2 Hưỏng dẫn sử dung chương trình:
DEVELOPING GAME 2D IN JAVA [Be an mon Cac Phirong Phap Lap Trinh]
Page25
- Khi khai dong game se co Menu cho ngudi chai lira chon:
- Khi chon Start game, game se dugc bat dau.

×