• 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
Trang 2Page2
Trang 3BÁ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
Niên khỏa: 2006-2010
MỤC LỤC
Trang 42.2 Hướng
dẫn sử dụng chương trình 7
2.3 Tên và tính năng của các lóp chính trong chương trình 12
3 Game Battle Tank 3.1 Giới thiệu về game Battle Tank 13
3.2 Hướng dẫn sử dụng chương trình 14
3.3 Tên và tính năng của các lóp chính trong chương trình 18
4 Game AirStrike 4.1 Giới thiệu về game Airstrike 21
4.2 Hướng dẫn sử dụng chương trình 22
4.3 Tên và tính năng của các lóp chính trong chương trình 28
5 Tài liệu tham khảo 30
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
Trang 5Tì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ànhì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ôngviệ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:
Trang 6• 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
Trang 8Người Chơi
Page8
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 chungnhư 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 :
Trang 10Page10
Trang 11A Tăng điếm, tăng cấp độ
BĨẺU ĐÒ LUỒNG DỬ LIÊU:
Trang 12- Khi khài dông game së co Menu cho nguài chai lira chon:
Trang 14Page14Game InfoExit
Trang 15§
Trang 16- Khi chon Start game, game së dugc bât dâu
Trang 17*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ó 10cap do
Trang 18Pagel18
Trang 20Page20
Trang 21Press c to continue
“Right” - Move Right
“Up” - Rotate Right
“Down” - Move Dow n
“Esc” - Pause
- Chọn Exit ở Main Menu đê thoát khởi game!
Trang 22Button: 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.
Trang 23Hệ thống
V
J
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ếtmạ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 :
Trang 24Page24
Trang 26Người chơi
1.0 AChơi
Trang 28Page28
Trang 29Hướng dẫn sử dụng chương trình:
- Khi chọn Start game, game sẽ được bắt đầu
Trang 30- 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
Trang 31Tê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
Trang 32void 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 xetă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ơilạ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
Trang 33void 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 ứnghì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
Trang 34Và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ànhnhiệ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 chungnhư 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 :
Trang 36Page36
Trang 37A Tăng điêm, thưởng mạng, qua màn
BĨẺU ĐÒ LUỒNG DỬ LIÊU:
Trang 38Page38
Trang 39- Khi chon Start game, game se dugc bat dau.
Trang 41*Khi bắn trúng máy bay địch, người chơi sẽ được thưởng 40 điếm *Khi
bắn trúng vũ khí của địch, người chơi sẽ được thưởng 10 điểm *Khi
người chơi đạt được mồi 1000 điếm sẽ được thưởng 01 mạng
- Trong quá trình chơi, người chơi có thể bấm phím Esc đế dừng game lại người chơi
có thế chọn chơi tiếp(Esc) hoặc quay về Main menu (Q)
Trang 42Page42
Trang 44“Shift” - Bomb Press c to continue
- Chọn Exit ở Main Menu đê thoát khởi game!
Trang 45boolean TestCollision(int Xl,int Yl,int Widthl,int Heightl,int X2,int Y2,int Width2,int Height2): kiểm tra va chạm giữa các đối tượng.
void update_player_weapon(): cập nhật sự di chuyển và kiểm tra va chạm
void set_enemy(): cho đối thủ xuất hiện dựa trên map
AirCraft: Tạo và quản lý các đối tượng Máy bay, xe phòng không và Boss.
void FlyForBoss(int direction): quản lý chuyển động cho Boss(Tàu
Trang 46void SetTimePre(long _time_pre): đặt thời gian chuyến dời hiện tại của
vũ khí
BackGround: quản lý cuộn màn hình.
void RollỌong elapsedTime): phương thức để làm cuộn màn hình, void Render(Graphics2D g): vẽ hình nền
Button: quản lý các button
boolean MouseHandler(): quản lý sự kiện chuột khi nhấn vào button, void Render(Graphics2D g): vẽ button
Explosion: khởi tạo và quản lý hình ảnh va chạm phát no.
Map: khởi tạo và quản lý map world.
int getEnemy(int i, int j): cho đối thủ xuất hiện ra màn hình
int getCurrentMap(): lap map hiện tại
void setCurrentMapO: đặt map cho game
int getMapPosition(): lấy vị trí của map hiện tại
void setMapPosition(): đặt vị trí cho map
void incMapPosition(): tăng vị trí cho map hiện tại
Score: quản lý hình ảnh số điểm và số mạng cho người chơi.
Trang 47Hình ảnh và âm thanh của game Tetris (AxySoft), Around the World in 80 Days (PlayRix Entertainment), Heavy Weapon Deluxe (PopCap Games)