báo cáo kỹ thuật lập trình game java 2d
DESCRIPTION
helloTRANSCRIPT
-
1 NHM 35 LP KSCLC K57
TRNG I HC BCH KHOA H NI
VIN CNG NGH THNG TIN V TRUYN THNG
BO CO BI TP LN
LP TRNH HNG I TNG
Ti: Xy Dng Game 2D
Ging vin Hng Dn: TS. V Th Hng Giang
ThS. Trnh Thnh Trung
Nhm sinh vin thc hin:
Nguyn Vn Thnh MSSV: 20122512
Nguyn Duy Nht MSSV: 20120690
Bi Mnh Thng MSSV: 20120884
La Quc Anh MSSV: 20121195
nh Nam MSSV: 20122099
H Ni 05/2015
-
2 NHM 35 LP KSCLC K57
MC LC
MC LC .......................................................................................................... 2
LI NI U .................................................................................................... 3
PHN CNG THNH VIN TRONG NHM ................................................... 4
CHNG 1. M T YU CU ...................................................................... 7
1.1. M t yu cu bi ton ........................................................................ 7
1.2. Biu use case ................................................................................. 7
1.3. c t use case ................................................................................... 8
CHNG 2. THIT K CHI TIT ................................................................. 11
2.1. Thit k lp ........................................................................................ 11
2.1.1. Biu lp .................................................................................... 11 2.1.2. Thit k chi tit lp ........................................................................ 13
2.2. Thit k giao din bt u ................................................................ 15
CHNG 3. CHNG TRNH MINH HO ................................................. 17
3.1. Xy dng chng trnh .................................................................... 17
3.2. Kt qu chng trnh ....................................................................... 17
CHNG 4. KIM CHNG CHO .............................................................. 24
4.1. i tng kim chng (Verification) .............................................. 24
4.2. Kim chng cch trnh by bo co ............................................... 24
4.3. Kim chng thit k v k nng lp trnh ....................................... 24
4.4. Kim th tch hp ............................................................................ 24
CHNG 5. KT LUN V HNG PHT TRIN ................................... 26
TI LIU THAM KHO .................................................................................. 27
PH LC ........................................................................................................ 19
-
3 NHM 35 LP KSCLC K57
LI NI U
Trc s pht trin nh v bo ca cng ngh thng tin v nhu cu gii tr
ca con ngi cng tng ln theo tng ngy, con ng i ngy cng s dng nhiu
game cho mc ch gii tr ca mnh. Game ang ngy cng pht trin a dng v
phong ph trn mi nn tng mi thit b t in thoi di ng, smart phone,
laptop n my tnh bn
Trc nhu cu s dng game gii tr ngy cng gia tng cng v i s pht
trin ca khoa hc cong ngh v c bit l s thnh cng ca game flapy bird
trong th i gian gn y nh du mt bc ngot cho s pht trin ca dng game
n gin v d chi. Nm bt c c hi nhm chng em quyt nh la chn
ti Xy dng Game i khng
(c cht thay i so vi ti game c giao l xy dng game RPG) vi u th
n gin d chi, ha p mt v bm theo ct truyn ca b truyn tranh maga
ni ting ONE PIECE chng em tinh tng sn phm s c c ch ng trn th
trng.
Trong qu trnh thc hin chng em gp ph i nhiu kh khn v sai st mong
thy c v cc bn nh gi khch quan v ng gp gip nhm kp th i sa cha.
Cui Cng hon thnh c bi tp ln ny, nhm chng em xin c g i
l i cm n chn thnh n thy/c gio hng dn ti c V Th Hng Giang,
thy Trinh Thnh Trung, Ging vin Khoa Cng ngh Thng tin Trng i hc
Bch Khoa H Ni - ht lng gip , hng dn, ch dy tn tnh nhm em
hon thnh c ti ny.
H Ni thng 05 nm 2015
Nhm 35 lp KSCLC K57
Danh sch thnh vin:
Nguyn Vn Thnh
Nguyn Duy Nht
nh Nam
La Quc Anh
Bi Mnh Thng
-
4 NHM 35 LP KSCLC K57
PHN CNG THNH VIN TRONG NHM
Thi
gian
thc
hin
Nguyn Vn
Thnh
Nguyn
Duy Nht
La Quc
Anh
nh Nam Bi Mnh
Thng
Tun 1 -Tch ly y
kin thc
java c bn
-Thit k h
thng cc lp
qui vt v
qun l qui
vt
-Tch ly
y
kin thc
java c
bn
-Thit k
cu trc
chng
trnh
chnh bao
gm vng
lp v lp
qun l
chnh tt
c cc
map
-Tch ly
y
kin thc
java c
bn
-Tm
hiu v
xy dng
thut
ton x
l cc
loi va
chm
-Tch ly y
kin thc
java c bn
-Thit k cu
trc
background
cho mi map
v tm hiu
cch xy dng
giao din khi
khi chy
-Tch ly
y
kin thc
java c
bn
-Tm hiu
phn tch
thit k h
thng m
thanh
trong
game
Tun 2 Tm hiu tch
ly y kin
thc v java
graphics,swing,
Xy dng kt
cu ta
chng trnh.
Tm hiu
tch ly
y v
java
graphics ,
swin timer
v a
lung
Tm hiu
tch l
y
kin thc
v
graphics
v p
dng cc
thut
ton va
chm,
chuyn
Tm hiu tch
ly y kin
thc v
grpahicsjava
swing jpanel,
jframe,button
Tm hiu
v tch ly
y
kin thc
V java
clip,
sound,
Graphics
-
5 NHM 35 LP KSCLC K57
ng ca
nhn vt
Tun 3 Thc hin vit
m ngun cc
lp qun l va
chm v
chuyn ng
ca qui,cc
lp qun l cc
qui v cc lp
qui.
Vit m
ngun cc
lp ngi
chi v
lp qun
l game
chnh
cha
vng lp
v hn
ca
game, xy
dng
phng
thc
update
Xy
dng
thm cc
thuc
tnh
phng
thc
trong cc
lp
ngi
chi v
qui vt
kt
ni x l
va chm
gia
chng
trong
game
Vit m ngun
giao din bng
netbean. Vit
lp
background
qun l
background
mi map
Vit m
ngun cc
m thanh
cho tng
s kin.
Ti cu
trc li m
ngun
ton
chng
trnh
Tun 4 Xy dng c
th cc lp
qui, load
sprite sheet
mi qui, xy
dng cc
phng thc
skill khc nhau
cho mi qui.
Xy dng
phng thc
ui theo
ngi chi.
Xy dng
hon
chnh lp
board
qun l
ton b
game, xy
dng lp
cha c
bn
character
cc
lp con
khc k
tha
Lp gp
cc s
kin va
chm
gia
ngi v
qui
thng
qua cc
phng
thc
update
Lp gp giao
din vi cc
thnh phn
cn li ca
game,
Lp ghp
chun ng
ca back
ground theo
nhn vt tng
ng mi map
Xy dng
Cc lp b
tr trong
game nh
helicopter
v x l va
chm nhn
vt vi cc
thnh
phn ph
trong
game nh
hp mu,
hp dame
-
6 NHM 35 LP KSCLC K57
Tun 5 Xy dng cc
lp n v
qun l n
Tng qut
ha
chuyn
ng ca
cc thnh
phn
thng qua
lp
animation
Xy
dng b
sung cc
phng
thc
chuyn
ng ca
nhan vt
v cc
skill
Hon thi giao
din v cc lp
load sprite
sheet. Tham
gia tho lun
v xy dng
kt ni cc
thnh phn
chng trnh
Hon thin
nt cc x
l v m
thanh, cc
thnh
phn
game v
hon thin
mt phn
lp nhn
vt
Tun 6 Tho lun v
hon thin lp
ngi chi v
cc lp n
Tho lun
v xy
dng kt
cu li
ton b
h thng
chng
trnh.
Sa m
ngun
ph hp
vi kt
cu mi
Sa m ngun
ph hp vi
kt cu mi
Sa m
ngun ph
hp vi
kt cu
mi
Tun 7 Tinh chnh,
nh gi v
test, v lm
bo co, vit
ti liu.
Tnh
chnh,
nh gi
v test, v
lm bo
co, vit
ti liu.
Tnh
chnh,
nh gi
v test,
v lm
bo co,
vit ti
liu.
Tnh chnh,
nh gi v
test, v lm
bo co, vit
ti liu.
Tnh chnh,
nh gi
v test, v
lm bo
co, vit
ti liu.
nh
gi
chung
tch cc tham
gia tho lun,
ng gp
kin, xy dng
h thng. Hon
thnh cng
vic ng thi
gian quy nh.
thc tt
tch cc
tham gia
tho lun,
ng gp
kin,
xy dng
h thng.
Hon
thnh
cng vic
ng thi
tch cc
tham gia
tho
lun,
ng gp
kin,
xy dng
h thng.
Hon
thnh
cng
tch cc tham
gia tho lun,
ng gp
kin, xy dng
h thng.
Hon thnh
cng vic ng
thi gian quy
nh.
thc tt
tch cc
tham gia
tho lun,
ng gp
kin, xy
dng h
thng.
Hon
thnh cng
vic ng
-
7 NHM 35 LP KSCLC K57
gian quy
nh.
thc tt
vic
ng
thi gian
quy nh.
thc
tt
thi gian
quy nh.
thc tt
CHNG 1: M T YU CU
1.1 M t yu cu bi ton:
- Xy dng game i khng gia ngi chi v qui.
- Ngi chi c th: la chn start,help,quit, tn cng qui vt theo 2 skill l
Q v W, di chuyn, nhy
- Ngi chi c th la chn cc map khi giao din map chinh!. 1.2 Biu USE CASE
Tc nhn: ngi chi
USE case:
- Start game
- Select map
- Quit game
- Help
- Select skill
- Move
- Attack
- Exit
Use Case Diagram
Hnh 1: biu use case
START
QUIT
SELECT
SKILL
MOVE
ATTACK SELECT
MAP
-
8 NHM 35 LP KSCLC K57
1.3 c t use case
1.3.1 Start game:
a) M t:
Ngi dung s dng use ny bt u chi game
b) Dng s kin
Ngi dung bt u chi game click START
H thng hin th map ngi chi la chn vo cc mn
1.3.2 Quit game
a) M t:
Ngi dung s dng use case ny thot khi game
b) Dng s kin:
Ngi dung thot khi game bng cch nht QUIT
H thng s dng hot ng
1.3.3 Help
a) M t
Ngi dung s dng use case ny xem phn tr gip v hng dn
chi game
b) Dng s kin:
Ngi dung click HELP
H thng s m ra mt dialog cha on text hng dn chi game
v gii thiu v game
Ngi dung click X thot dialog v tr li
1.3.4 Select Map
a) M t:
Ngi dng s dng use case ny la chn mn chi game
b) Dng s kin:
Ngi chi click vo cc map l cc hnh elip tng ng vi mi
hn o la chn map
Sau khi ngi chi click vo map h thng s m ra giao din chi
game ngi chi bt u chi.
Ngi chi click vo nt back
H thng s quay tr li menu start
-
9 NHM 35 LP KSCLC K57
1.3.5 SELECT SKILL
Hnh 2: biu use case phn gi 1
NHN cc
phm skill
Nhn Q Nhn W
Nhn vt trong game s
tung ra skill
Chm ngang c st
thng bnh thn
Nhn vt trong game s
tung ra skill
Chm b dc c st thng
cao
-
10 NHM 35 LP KSCLC K57
1.3.6 MOVE
Hnh 3: biu use case phn gi 2
1.3.7 ATTACK
a) M t:
Ngi chi s dng use case ny tn cng qui vt
b) Dng s kin
Khi ngi chi s dng cc phm MOVE tin li gn qui vt v nhn cc phm
skill Q,W tn cn qui vt
Khi ngi chi tn cng trng vo qui vt h thng s tr im HP ca qui vt khi
HP qui vt =0 ngi chi s dnh chin thng
1.3.8 EXIT
a) M t:
Ngi chi dng use case ny thot khi mn hnh chi game
Ngi chi nhn cc
phm di chuyn hnh
mi tn
Nhn vt di
chuyn sang
phi
Nhn vt di
chuyn sang
tri
Nhn vt
nhy ln
-
11 NHM 35 LP KSCLC K57
b) Dng s kin
Khi ngi chi nhn phm F
H thng s xc nhn l ngi chi thua v quay tr li mn hnh select map
CHNG 2: THIT K CHI TIT
2.1 Thit K Lp
2.1.1 Biu Lp
Cc lp bao gm:
Class OnepieceFrame
Class board
Class LUFFY
Class Enermy
Class background
Class demon
Class animation
Class character
Hnh 5: biu lp 2
Hnh 5: biu lp 2
H
-
12 NHM 35 LP KSCLC K57
Hnh 4 Biu lp 1
-
13 NHM 35 LP KSCLC K57
Hnh 5: biu lp 2
2.1.2 Thit K Chi Tit Lp
MT S LP CHNH:
Lp character l lp cha c cc thuc tnh:
HP,ManaHP,MAXMana,speed,x,y,dx,dy,visible,right,currentFrame,gtr;
Cc getert,setert tng tng v cc Abstract method
TopRect(),BotRect(),BoundsRect(),EspaceRect();
Xy dng lp Board: extends JPanel,implement Runnable
-
14 NHM 35 LP KSCLC K57
Thuc tnh:
- sound(soundMap)
- ingame,win,lose(Boolean)
- luffy(LUFFY)
- min1(Enemy)
- bg(Background)
- bullet(bulletSkill)
- level,delay,x0,h,w(int)
- opFrame(OnepieceFrame)
Phng thc
- Board(int level) khi to mi Board theo t level
- iniBoard(int level) thc hin phng thc Board() trn
- paint(Grapichs g): v ln panel, trong phng thc paint c dng v nhn vt,
qui vt, background, m mt s thnh phn khc ca map
- run(): thc hin lung c implement t Runnable trong phng thc run() s
dng vng lp v Thread.sleep() v gi n cc hm update ca luffy,min1,bullet,bg v
hm repaint() v li jpanel mi khi lp li.
- Iner class TAdapter extends KeyAdapter l mi class trong dng nghe cc s kin
- Ngoi ra cn c cc phng thc getert v setert ca cc thuc tnh tng ng
Xy dng lp LUFFY extends Character
Thuc tnh
- Sound(soundPlayer)
- Exp(int)
- MaxExp,dameQ,dameW(int)
- countJump,countBeaten(int)
- flag,beaten,rightBefore(Boolean)
- stand,jump,walk,skillQ,skillW(Boolean)
- IsShot(Boolean)
- Level(int)
- Luf(luffy_sprites)
- BoundsRect(Rectangle)
Phng thc
- LUFFY(),LUFFY(int level) hai hm khi to
- upDate(Enemy min, bulletSkill bullet,Background bg) phng thc dng ct nht d
liu cho lp LUFFY mi khi lp li trong phng thc c xy dng cc thut ton
chuyn ng stand,jump,walk ,cc thut ton tn cng skill,skill1,skillulti v cc thut
ton s l va chm vi qui vt hay cc thnh phn khc trong map
- keyPressed(KeyEvent e) bt s kin nhn phm
- keyReleased(KeyEvent e) bt s kin khi nh phm
- TopRect() tr v hnh ch nht cha na thn trn ca nhn vt
- BotRect() tr v hnh ch nht cha na thn di ca nhn vt
- BoundsRect() tr v hnh ch nht cha ng bao ngoi ton hnh ca nhn vt
-
15 NHM 35 LP KSCLC K57
- EspaceRect() tr v hnh ch nht th hin vng nh qui
- Ngoi ra cn c cc phng thc geter,seter tng tng vi cc thuc tnh
Xy dng lp Enemy
Thuc tnh:
- Sound(soundEnemy)
- Delay,delaySkill(int)
- Stand,jump,jumpBefore,skill,skill1,beaten,rightBefore,skillulti,skillultiBullet(Boolean)
- Count,dame,countJump,coutSkillUlti(int)
- I(int)
Phng thc
- Enemy(int level) phng thc khi to qui vt theo tng level
- update(LUFFY luffy) trong phng thc xy dng cc thut ton chuyn ng ca qui
ui theo nhn vt, khi vo mt khong nht nh qui s tung ra cc skill,skill1 tn
cng nhn vt v khi c mt qung thi gian nht nh qui s nhy li li tung ra
skillulti tn cng nhn vt
reong phng thc s dng cc bin trng thi boolean xc nh hnh ng ca
qui din ra
- ngoi ra cn xy dng cc phng thc geter v seter tng ng vi cc thuc tnh
2.2 Thit K Giao Din Tng Tc Ban u
Giao din c thit k trong lp OnepieceFrame
Thuc tnh
JButton close;
JDialog help;
JButton jButton1;
JButton jButton2;
JButton jButton3;
JButton jButton4;
JEditorPane jEditorPane1;
JPanel jPanel1;
JPanel jPanel2;
JPanel jPanel3;
JScrollPane jScrollPane1;
JLabel map0;
-
16 NHM 35 LP KSCLC K57
JLabel map1;
JLabel map2;
JLabel map3;
JLabel map4;
JLabel map5;
JLabel map6;
JLabel map7;
JLabel map8;
JLabel map9;
soundBackground sound;
int key=0;
Phng thc:
-
17 NHM 35 LP KSCLC K57
initComponents()
phng thc dng khi to frame c cha 2 panel l Jpanel1 v Jpanel2
Jpanel1 c cha cc button start help quit trn mi button c ng k nghe cc s
kin click chun
Jpanel 2: c cha button back v cc label t 0 n 9
Button v label c gn cc s kin chut tr li v vo map chi game
Cc phng thc s l s kin click chut.
Started(int level)
c thc hin khi c s kin click chut trn mi label jpanel 2
Main()
L phng thc chnh dng chy khi JVM bt u
Run()
thc hin lung
CHNG 3: CHNG TRNH MINH HA
Xy dng chng trnh
- Gii thiu v cng ngh s dng xy dng chng trnh minh ha
o Cng ngh s dng: JAVA
o Tnh nng, u im ca cc cng ngh ny: Kin trc thit k tt, cng ng
mnh, do l cng ngh m, chy tt trn nhiu platform khc nhau (nht l trn
linux).
o L do la chn/s dng cng ngh: cc ng dng c kh nng chy thng nht
trn nhiu nn tng m ch cn bin dch mt ln.
- Mi trng lp trnh: NetBean IDE v Eclipse IDE.
Kt qu chng trnh
- Mt s hnh nh demo thc hin cc chng nng chnh ca chng trnh. Trn mi giao
din u c cc phm bm tng ng vi cc chc nng ca chng trnh.
-
18 NHM 35 LP KSCLC K57
Hnh 6: giao din khi bt u vo game
-
19 NHM 35 LP KSCLC K57
Hnh 7: Dialog Help
-
20 NHM 35 LP KSCLC K57
Hnh 8: giao din la chn map
-
21 NHM 35 LP KSCLC K57
Hnh 9: Giao din khi Chi game 1
-
22 NHM 35 LP KSCLC K57
Hnh 10: Giao din khi chi game 2
-
23 NHM 35 LP KSCLC K57
Hnh 11: Giao din khi chi game 3
Hnh 12: Giao din khi chi game 4
-
24 NHM 35 LP KSCLC K57
CHNG 4: KIM CHNG CHO
i tng kim chng (Verification)
Kim chng cho nhm no gm cc thnh vin no, ti g.
Kim chng cch trnh by bo co
Theo cc tiu ch nh gi - Ch trnh cc li trnh by/li chnh t. Khng c php vi phm cc li
trnh by c bn, VD: cc du cu phi i lin vi ch pha trc v cch
ch pha sau 1 du cch
- Cch thc trnh by khoa hc, sng sa, d theo di, c gn kt gia cc phn, y cc phn theo mu.
Kim chng thit k v k nng lp trnh
Theo cc tiu ch nh gi - Thit k v m ngun chng trnh cn p ng cc yu cu ti thiu ca
cc nguyn l cng ngh hng i tng: Mc tru tng ho, ng gi,
m-un ho v phn cp.
- Phong cch lp trnh thng nht, tun th cc quy c lp trnh chung.
- Bt v x l ngoi l tt.
Kim th tch hp
Kim th chc nng chng trnh, coi chng trnh nh hp en, chi th chng trnh game kim tra li Theo cc tiu ch nh gi
- Giao din d nhn, d s dng v hp l - Cc chc nng ca chng trnh
Vi mi chc nng use case ca chng trnh, cn a ra cc trng hp kim th (test case) cn c thc hin. Mi trng hp kim th cn c t chi tit bao gm nhng thng tin sau:
- Tn use case (tn chc nng) - Tn trng hp kim th - Ngi lp trnh (tn thnh vin nhm kia trc tip lp trnh chc nng ny) - Ngi kim th (tn thnh vin nhm ny thc hin kim th tch hp) - Trng thi: Cn li, Chy thng
-
25 NHM 35 LP KSCLC K57
Nu cn li, cn c thm thng tin: Cc bc cn thc hin ti to li.
V d v bng kim th chc nng:
M li Tn li Use case Trng thi
Ngi to
Loi li Cc bc ti to li /
D liu kim th Kt qu thc t
UC01-01 Cc thng bo li khng l mu
- Thm/sa mn thi - Thm/sa bi thi
Cn li LongNV 2- Giao din ngi dng
Nhp d liu sai t nht 1 trng
Nhn nt Thm mi/Cp nht
Thng bo li hin ln l mu en
File nh nh km: 1-StyleDo.jpg
UC01-02 Khng x l validate cho trng Thi gian thi
Cp nht bi thi Cn li TrangNT 1- Chc nng (logic)
G thi gian thi gm c k t
Nhp cc trng khc bnh thng
Nhn nt Cp nht
Thng bo: "C li nghim trng xy ra. Input string was not in a correct format"
File nh nh km: 2-ThoiGianThi.jpg
UC02-01 Chc nng Print khng hot ng
Thi tht Cn li NhungTT 1- Chc nng (thiu chc nng)
Tin hnh chn bi thi v thi
Nhn nt Kt thc Nhn nt Print
Khng thc hin g
-
26 NHM 35 LP KSCLC K57
CHNG 5:KT LUN V HNG PHT TRIN
- Kt qu t c: Hon thnh chng trnh, bo co bi tp ln ng thi
hn. - u im: Giao din thn thin vi ngi dng, c y cc chc nng
theo yu cu, ni dung bm theo ng ct truyn - Nhc im: dung lng chng trnh ln, s lng skill nhn vt cn t cc
thnh phn trn map cn t - Hng pht trin cho ti, cho sn phm v kh nng ng dng: pht trin
m rng s lng map s lng skill cc thnh phn trn map, bm theo ct truyn m rng nn tng sang android
-
27 NHM 35 LP KSCLC K57
TI LIU THAM KHO
[1] Head First JAVA: Kathy Sierra and Bert Bate
[2] Slide lp trnh hng i tng trn h thng ACU.
[3] Zetcode.com
[4] Kilobolt.com
[5] Docs.oracle.com
[6] Blog study and share trn youtube
[7] Cc ti liu khc trn Internet
PH LC
Hng dn ci t
Yu cu h iu hnh Windows XP/7/8 hoc Linux
Ci t Java development kit JDK( dowload ti
http://www.oracle.com/technetwork/java/javase/downloads/index.htm
l)
Ci t Eclipse IDE(dowload ti https://eclipse.org/downloads/) v
thit lp bin mi trng cho java
Trong giao din ca Eclipse chn File -> Import
-
28 NHM 35 LP KSCLC K57
Chn next
Chn ng dn n th mc cha project
-
29 NHM 35 LP KSCLC K57
n ok. Sau chut phi vo project va import chn Run As chn java application
Hng dn s dng
Sau khi khi chy chng trnh:
-
30 NHM 35 LP KSCLC K57
Chn Start vo chn map!
Chn help xem hng dn chi
Sauk hi chn start:
-
31 NHM 35 LP KSCLC K57
Click vo mi hnh elip th hin cc hn o bn tay phi (clicl here) vo mi map v click
mi tn quay li tr li