bao cao do hoa may tinh.docx

Upload: dung-nguyen

Post on 02-Mar-2016

63 views

Category:

Documents


1 download

DESCRIPTION

thiết kế và lập trình game flappy bird

TRANSCRIPT

TRNG I HC BCH KHOA H NIVIN CNG NGH THNG TIN V TRUYN THNG

BI TP LNMN: ha my tnh v hin thc o ti : thit k v lp trnh game trn di ngGio vin hng dn:TS. V Th Hng Giang

Sinh vin thc hin:MSSV

Nguyn Vn Dng20101287

H Ni, thng 5 nm 2014

1.Li ni u22. ha my tnh v hin thc o22.1. ha my tnh.22.2.Hin thc o (Virtual reality)3nh ngha.3Cc thnh phn ca mt h thng hin thc o.33.Game engine33.1.nh ngha33.2.Mc ch43.3.o ha phn cng43.4.Xu hng hin ti54.Th vin LibGdx54.1.Gii thiu54.2.Mt s u im ca LibGdx54.3.Ci t v s dng65.Game FlappyBird85.1.Gii thiu85.2.Kch bn95.3.Xy dng i tng95.4. m game11

1. Li ni uTrong xu th tin hc ha ton b cuc sng ang din ra tp np hin nay, lnh vc ha ng mt vai tr rt to ln. Ta c th d dng thy nhng minh ha cho vic p dng ha my tnh vo cuc sng: x l nh, phim hot hnh, c bit l hin thc o (Virtual reality). Hin thc o l thut ng miu t mi trng m phng bng my tnh, a phn cc mi trng thc ti o ch yu l hnh nh hin th trn mn hnh my tnh thng qua knh 3 chiu, tuy nhin mt vi m phng cng c thm cc gic quan khc nh m thanh hay xc gic. Cng ngh hin thc o l mt ngnh cng ngh cao, c ng dng c bit rng ri, t cc tr chi 3D cc k sng ng n nhng m phng phc tp trong cng nghip v khoa hc (m phng cc v n ht nhn, m phng chi tit my, m phng th gii o dng hun luyn phi cng, cc hot ng ca bn trong c th ngi trong lnh vc y hc).2. ha my tnh v hin thc o2.1. ha my tnh. ha my tnh l mt lnh vc khoa hc my tnh nghin cu v c s ton hc, cc thut ton cng nh cc k thut cho php to v hin th v iu khin hnh nh trn mn hnh my tnh. ha my tnh c lin quan t nhiu n mt s lnh vc nh i s, hnh hc gii tch, hnh hc ha hnh, quang hc v k thut my tnh, c bit l ch to phn cng (nh cc loi mn hnh, cc thit b xut, nhp, cc vi mch ha).Mt s h mu thng dng. H mu RGB m t mu sc bng ba thnh phn Red, Green, Blue trong mt m hnh gi l khng gian mu. Khng gian ny c minh ha bng mt khi lp phng vi cc trc chnh R, G, B. Mi mu trong khng gian RGB u c biu din nh l mt vector thng qua ba vector c s l Red, Green, Blue, do ng vi cc t hp khc nhau ca 3 mu ny s l cho ta mt mu mi. H mu CMYK (h mu tr): H mu CMYK ti to bng mc, dng trong in n, in offset, in phun mu. Gm 3 mu mc c bn: Cyan(c), Mangenta(M), Yellow(y). H mu HSB (h tng hp): h HSB gm 3 thnh phn c bn ca mu sc: Hue (sc mu), Saturation ( no mu), Brightness( sng ti). H my Lab: H mu Lab ti to mu trong cng ngh thng hoa mu ca nh k thut s. Cng ngh ny thng khng c mc in m giy ng vai tr quang ph to nn sc nn c ngng rt cao v di mu phong ph. H Lab gm 3 thnh phn: L(nh sng: trng en, 0 100%), a(t xanh l n , -127 n 128), b (t xanh dng n vng, -127 n 128).2.2. Hin thc o (Virtual reality) nh ngha.Thc t o l mt h thng giao din cp cao gia ngi s dng v my tnh. H thng ny m phng cc s vt v hin tng theo thi gian thc v tng tc vi ngi s dng thng qua tng hp cc knh v cm gic.Cc thnh phn ca mt h thng hin thc o. Phn cng: phn cng ca mt h thng hin thc o bao gm: my tnh (PC vi cu hnh ha). cc thit b u vo (input devices). Cc thit b u ra (output devices). Phn mm: phn mm lun l linh hn ca VR cng nh i bt c mt h thng my tnh hin i no. V mt nguyn tc c th dng bt c ngn ng lp trnh hay phn mm ha no m hnh ha v m phng cc i tng ca VR. V d nh: OpenGL, C++, Java3D, VRML, X3D hay cc phn mm thng mi nh WorldToolkit, PeopleShop3. Game engine3.1. nh nghaMt game engine l mt phn mm c vit thit k v pht trin video game, hiu n gin n l loi phn mm trung gian kt ni tng tc ca nhiu ng dng trong cng mt h thng vi nhau. Chc nng ct li ca game engine phn ln nm trong b cng c dng hnh cho cc nh 2 chiu hay 3 chiu, cng c vt l (tnh ton v pht hin va chm), m thanh, hnh nh ng, tr tu nhn to, phn lung, to dng d liu x l, qun l b nh, dng nh th v kt ni mng. Qu trnh pht trin game tit kim c rt nhiu thi gian v kinh ph nh vo vic s dng game engine.

3.2. Mc chGame engine cung cp mt b cc cng c pht trin trc quan c th ti s dng tng thnh phn trong . Ni chung cc b cng c ny cung cp mt mi trng pht trin tch hp c n gin ha. Nhng engine ny i khi cn c gi l cc phn mm trung gian cho game, chng cung cp mt nn tng linh hot v d dng s dng li vi mi chc nng ct li cn thit ngay trong n c th pht trin mt ng dng game ng thi gim gi thnh, phc tp v kp thi pht hnh.Ging nh cc phn mm trung gian khc, game engine thng cung cp mt nn tng tru tng ha, cho php mt game c th chy trn nhiu h my khc nhau gm cc h console hoc my tnh c nhn.Mt s game engine ch cung cp kh nng dng hnh 3D thi gian thc thay v rt nhiu chc nng trong phm vi rng m game yu cu. Loi engine ny ty thuc vo cc nh pht trin, s dng thc hin phn chc nng hoc kt ni phn hnh nh cn li t cc game engine khc nhm mc ch ci thin hnh nh cho game, loi engine ny thng c gi l graphics engien , rendering engine hay 3D engine.3.3. o ha phn cngThng thng, engine 3D hay h thng kt xut ha trong game engine thng c xy dng trn mt nn tng giao din lp trnh ng dng ha nh Direct3D hay OpenGL cung cp sn mt h o ha cho GPU hay card ha. Th vin m ngun cp thp nh DirectX, SDL v OpenAL cng thng c s dng trong cc game khi chng cung cp kh nng truy cp phn cng c lp vi phn cng my tnh khc nhau nh cc thit b u vo (chut, bn phm, v tay cm iu khin), card mng v card m thanh.3.4. Xu hng hin tiVi cng ngh to game engine ngy cng pht trin v tr nn thn thin hn vi ngi s dng, ng dng ca n cng c m rng v gi ay c s dng to cc game mang mc ch khc vi gii tr n thun nh: m phng, hun luyn o, y t o, v m phng cc ng dng qun s.Thm vo , nhiu game engine ang c to ra bng cc ngn ng lp trnh cp cao nh Java hay C#... v hu ht cc game 3D hin nay u c gii hn GPU (gii hn bi sc mnh ca card ha), kh nng gy chm my ca cc ngn ng lp trnh cp cao tr nn khng ng k, trong khi vic tang nng sut c cung cp bi cc ngn ng ny li c li cho cc nh pht trin game engine.4. Th vin LibGdx4.1. Gii thiuLibGdx l mt framework a nn tng v hon ton min ph cho cc lp trnh vin mobile, c bit l lp trnh vin v game trn in thoi di ng. Hin nay trn th gii cng c mt s Framework a nn tng khc nh: cocos2d, cocos2dx y l mt Framework c pht trin trn nn OpenGL v h tr trn nhiu nn tng nh: Desktop, Android, IOS v HTML5.4.2. Mt s u im ca LibGdx a nn tng: chng ta ch cn vit code mt ln nhng c th chy c trn nhiu nn tng khc nhau. Mt ng dng ca tnh nng ny l pht trin cc ng dng cho Android. pht trin mt s ng dng cho Android, khi chy th ng dng chng ta cn chy ng dng trn Emulator hoc trn thit b tht, vic ny rt mt thi gian do Emulator chy rt chm v qu trnh ci t cng nh chy ng dng trn thit b tht cng kh ln.Vi LibGdx, chng ta c th chy ng dng trn PC, sau ch cn vi vi dng code, chng ta c th chy ng dng ny trn android vi hiu nng tng ng. iu ny gip chng ta kim th v tm li ng dng nhanh hn v hiu qu hn. Hiu nng: Hiu nng ca LibGdx thc s rt n tng cho LibGdx s dng c Java v m ngun C to ng dng. Cng ng: cng ng s dng LibGdx rt tuyt vi vi s lng ngi dng ln. Cc lp trnh vin lun ng gp v gip cho cng ng. Vic sa li cng c cp nht thng xuyn. Ti liu v v d: rt y vi Javadoc. LibGdx cng cung cp rt nhiu cc v d v demo vi y cc chc nng t c bn n nng cao. M ngun: m ngun m vi thit k rt r rng v ph hp vi vic pht trin ng dng cho di ng. LibGdx cho php ngi lp trnh kh nng s dng cc API t cc lp thp n cao, ty theo yu cu ca ngi s dng. Tnh nng: LibGdx c rt nhiu tnh nng nh to hnh, x l ha 2D, 3D, x l m thanh, qun l cc thit b vo ra, qun l file h thng. Cng vi l cng c i km hu ch nh Texture Packer v Particle Editor.4.3. Ci t v s dngB1: ci t android v eclipse+ download elipse ti a ch: https://www.eclipse.org/downloads/+ download android sdk ti a ch: http://developer.android.com/sdk/index.html

B2: ci t Libgdx+ download libgdx ti a ch: http://libgdx.badlogicgames.com/download.html+ sau khi ti xong tm n file c tn l gdx-setup-ui v click p chy, sau khi chy ln chn Create bt u to project.

+ tip theo t tn pakage, class MainGame v ng dn lu tr cho project. Sau click open the generation screen bt u to project

+ mn hnh tip theo click nt lauch v ch i qu trnh to project kt thc trong vi giy.

+ sau qu trnh to project kt thc, m eclipse ln v bt u import project va to vo. T eclipse chn File -> import -> general -> Existing projects into workspace v chn ng n n project va to.+ Tip theo chn tt c cc project v click Finish import vo eclipse.5. Game FlappyBird5.1. Gii thiuFlappy Bird l mt game trn nn tng Android v IOS do tc gi Nguyn H ng pht trin v thng 5/2013 v do GEARS Studios, mt studio pht trin game quy m nh, hot ng c lp c tr s ti Vit Nam, pht hnh.Vo thng 1/2014, tr chi ng u bng th loi min ph trn iTunes v App Store ca M v Trung quc v sau l trn UK App Store. Vo cui thng 1, Flappy Bird l ng dng c ti v nhiu nht trn App store cng nh Google play.Tuy nhin Flappy Bird dnh nhiu th phi v bn quyn khi nhiu trang tin nc ngoi cho rng Nguyn H ng sao chp hnh nh, m thanh t lot game ni ting Super Mario cng nh cch chi v tng ca tr chi Piou Piou v Cactus v vic Flappy Bird bng nhin nhy vt t v tr 1454 ln s 1 vo u nm 2014 ch trong 26 ngy cng gy nghi ng.5.2. Kch bnC mt mn hnh chi game vi: Background l mt nn tri nm yn, mt t pha di lin tc chy t tri sang phi. Mt con chim v cnh lin tc. Nu tap vo mn hnh: con chim ti v tr khi tap s bay nga mt ln mt on v ri cm u xung t, trong qu trnh thc hin chui thao tc trn nu xy ra s kin tap mn hnh con chim s thc hin hy b chui thao tc trc v ti v tr khi tap s thc hin chui thao tc mi. Trong mt khong thi gian c nh s tun t xut hin hai ng nc trn di cha mt khong h cao thp ngu nhin cho chim bay qua. Nu con chim bay qua c khong h hai ng s c cng 1 im. Nu con chim ng phi ng nc th GAME OVER

5.3. Xy dng i tng1. Nn tri: Image background np c nh trn mn hnh.2. Mt t: Land (k tha Image) Hnh ng:actionMoveLeft() tri lin tc v pha tri , c gi ngay khi bt u.3. Con chim (k tha Image): Thuc tnh:+ boolean isDie (cho bit chim sng hay cht)+ int score (im con chim t c khi bay qua cc ng) Hnh ng:+ p cnh lin tc (nu cht th dng p cnh) c gi ngay khi bt u.+ tapMe() hm thc hin chui hnh ng nhy ln v ri xung, c gi khi s kin tap xy ra.+ hitMe() hm thc hin cm u xung t v cht, c gi khi chim chm phi ng nc.+ updateScore() hm cng im cho chim thm 1 im, c gi khi ng thy con chim bay qua.4. ng nc (k tha Image): Thuc tnh:+ boolean getScore (cho bit con chim bay qua c tnh im cho chim hay khng)+ Bird bird (con chim m ng s kim tra bay qua hay ng vo) Hnh ng:+ actionMoveLeft() tri lin tc v bn tri (nu vt qua mn hnh t ng remove)+ bypass() kim tra v cng im cho con chim, c gi lin tc. Nu getScore true v c chim bay qua th gi hm updateScore() ca chim.+ checkCollision() kim tra va chm vi chim, c gi lin tc. Nu c va chm gi hm hitMe() ca chim.

5. mn hnh sn khu: MyStage (k tha stage) hnh ng:+ override hm touchDown() c gi khi s kin touch vo mn hnh.+ thc hin hm tapMe() ca con chim+ hoc gi resetGame() nu con chim cht.6. mn hnh chi game: PlayScreen (k tha screen) thuc tnh:+ MyStage stage: nhn touch, cha cc i tng ca game, gi action v v chng+ Bird bird: nhn vt chnh ca game+ Land land: mt t tri.+ static Label labelScore: hin th im ca con chim. hnh ng:+ np background, np Land, np Bird, np labelScore - gi khi reset li game+ addPipe(): np 2 ng c khong h ngu nhin, c gi tun t sau mi khong thi gian cho trc.

5.4. m game

Ti liu tham khohttp://vi.wikipedia.org/wiki/%C4%90%E1%BB%93_h%E1%BB%8Da_m%C3%A1y_t%C3%ADnhhttp://vi.wikipedia.org/wiki/Th%E1%BB%B1c_t%E1%BA%BF_%E1%BA%A3ohttp://vi.wikipedia.org/wiki/Flappy_Birdhttp://trithucmoi.co/en/android-intro/18-libgdx-and-andenginehttp://libgdx.badlogicgames.com/https://code.google.com/p/libgdx/http://thanhnb.com/lap-trinh/libgdx/libgdx-huong-dan-cai-dat-va-su-dung.html

1