51
Gambar 3.9. Activity Diagram memainkan level 1
Pemain Sistem
Memilih tombol Menu permainan Menampilkan halaman Menu permainan
Memilih tombol Main Memilih tombol Kembali
Menampilkan arena permainan Mulai permainan level 1
Kendalikan karakter Karakter bergerak
Jalankan AI Musuh muncul dan bergerak
Cek objek kilat Cek collision pada 1 objek kilat
Power bertambah ya
Power tetap tidak
Karakter menembak Menghancurkan musuh
Score dan target bertambah Lanjutkan permainan
Cek collision pada peluru musuh Darah berkurang
ya
Darah tetap tidak
Cek darah apakah habis ? tidak
Game over ya
Menyelesaikan level Menampilkan tombol level 2
Menampilkan scene 1 Memilih tombol lanjut
Menampilkan scene 2 Memilih tombol lanjut
Menampilkan scene 3 Memilih tombol lanjut
Menampilkan scene 4 Memilih tombol lanjut
Memilih tombol main Menampilkan scene 5
Memilih tombol main
52
6. Activity Diagram memainkan level 2
Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas memainkan level 2 yang dapat dilihat pada gambar berikut ini.
Gambar 3.10. Activity Diagram memainkan level 2
7. Activity Diagram memainkan level 3
Berikut ini adalah diagram yang menunjukan alur aksi pada aktivitas memainkan level 3 yang dapat dilihat pada gambar berikut ini.
Pemain Sistem
Menampilkan arena permainan level 2 Mulai permainan level 2
Kendalikan karakter Karakter bergerak
Musuh muncul dan bergerak Cek objek kilat
Cek collision pada 1 objek kilat Cek collision pada peluru musuh
Score dan target bertambah Lanjutkan permainan
Power tetap Power bertambah
ya tidak
Darah berkurang
Darah tetap ya
tidak
Cek darah apakah habis ? ya
tidak Game over
Karakter menembak Menghancurkan musuh
Menyelesaikan level Menampilkan tombol level 3
53
Gambar 3.11. Activity Diagram memainkan level 3
3.1.5.3 Class Diagram
Class Diagram adalah inti dari proses pemodelan objek. Class Diagram menggambarkan struktur dan hubungan antar objek-objek yang ada
pada sistem. Struktur itu meliputi atribut dan method yang ada pada masing- masing class. Di bawah ini merupakan Class Diagram game Gatotkaca
Evolution.
Pemain Sistem
Menampilkan arena permainan level 3 Mulai permainan level 3
Kendalikan karakter Karakter bergerak
Musuh muncul dan bergerak Cek objek kilat
Cek collision pada 1 objek kilat Cek collision pada peluru musuh
Score dan target bertambah Lanjutkan permainan
Power tetap Power bertambah
ya tidak
Darah berkurang
Darah tetap ya
tidak
Cek darah apakah habis ? ya
tidak Game over
Karakter menembak Menghancurkan musuh
Menyelesaikan level Menampilkan scene ending
54
G a
m b
ar 3.1
2. Diag ra
m K
elas
Game
+name +menu
+bantuan +levelsatu
+scene1 +scene2
+credits +menuGame
+levels +leveldua
+leveltiga +pauselv1
+pausebos1 +gameover
+scene3 +gameover2
+loadlv1 +pauselv3
+gameover3 +ending
+frameWidth +frameHeight
+GameString name: void +initStatesListGameContainer gc: void
+mainString[] args: void
Menu
+playMenu +background
+SoundOff +Credits
+mouse +Volume
+logo +sirip
+SoundOn +playMenuOver
+SoundOnOver +SoundOffOver
+CreditsOver +cloud
+cloud2 +soundmusic
+playerSheet +gatotSheet
+gatotSheet2 +birdSheet
+birdSheet2 +whaleSheet
+turtleSheet +ufoSheet
+playerAnimation +gatotAnim
+gatotAnim2 +birdAnim
+birdAnim2 +whaleAnim
+turtleAnim +ufoAnimation
+mouseX +mouseY
+cloudX +cloudY
+ufoX +ufoY
+soundX +soundY
+playerX +birdX
+birdY +bird2X
+bird2Y +gatotX
+gatotY +gatot2X
+gatot2Y +siripX
+siripY +logoX
+logoY +soundPlay
+music +sound
+sound2 +playMenuX
+playMenuY +creditsX
+creditsY
+Menuint state: void +initGameContainer gc, StateBasedGame game: void
+renderGameContainer gc, StateBasedGame game, Graphics g: void +updateGameContainer gc, StateBasedGame game, int delta: void
+keyPressedint key, char c: void +isMouseOverPlayButton1
+isMouseOverPlayButton2 +isMouseOverPlayButton3
+isMouseOverPlayButton4 +isMouseOverPlayButton5
+enterState +getID
Bantuan
+background +Kembali
+sisiBantuan +KembaliOver
+isiBantuanOver +cloud
+cloud2 +mouseX
+mouseY +cloudX
+cloudY +sound
+gatotSheet +gatotAnim
+Bantuanint state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton +isMouseOverPlayButton1
+enterState +getID
AlienBullet3
-bulletSheet: SpriteSheet -bulletAnimation: Animation
create+AlienBullet3pos: Vector2f, dir: Vector2f create+AlienBullet3
+initpos: Vector2f, dir: Vector2f: AlienBullet3 +rendergc: GameContainer, g: Graphics
Bullet
pos: Vector2f dir: Vector2f
lived: int = 0 aktiv: boolean = true
MAX_LIFETIME: int = 1100 RADIUS_SQARED: int = 400
+DAMAGE: int = 5 -bulletSheet: SpriteSheet
-bulletAnimation: Animation create+Bulletpos: Vector2f, dir: Vector2f
create+Bullet +initpos: Vector2f, dir: Vector2f: Bullet
+updatet: int +rendergc: GameContainer, g: Graphics
+isAktiv: boolean +setAktivaktiv: boolean
+collideWithotherPos: Vector2f, otherRadiusSqared: int: boolean +getDamage: int
AlienBullet4
-bulletSheet: SpriteSheet -bulletAnimation: Animation
create+AlienBullet4pos: Vector2f, dir: Vector2f create+AlienBullet4
+initpos: Vector2f, dir: Vector2f: AlienBullet4 +rendergc: GameContainer, g: Graphics
AlienBullet
-bulletSheet: SpriteSheet -bulletAnimation: Animation
create+AlienBulletpos: Vector2f, dir: Vector2f create+AlienBullet
+initpos: Vector2f, dir: Vector2f: AlienBullet +rendergc: GameContainer, g: Graphics
AlienBullet2
-bulletSheet: SpriteSheet -bulletAnimation: Animation
create+AlienBullet2pos: Vector2f, dir: Vector2f create+AlienBullet2
+initpos: Vector2f, dir: Vector2f: AlienBullet2 +rendergc: GameContainer, g: Graphics
EnemyBullet
-bulletSheet: SpriteSheet -bulletAnimation: Animation
create+EnemyBulletpos: Vector2f, dir: Vector2f create+EnemyBullet
+initpos: Vector2f, dir: Vector2f: EnemyBullet +rendergc: GameContainer, g: Graphics
Enemy2Bullet
-bulletSheet: SpriteSheet -bulletAnimation: Animation
create+Enemy2Bulletpos: Vector2f, dir: Vector2f create+Enemy2Bullet
+initpos: Vector2f, dir: Vector2f: Enemy2Bullet +rendergc: GameContainer, g: Graphics
Credits
+background +Kembali
+isiCredits +KembaliOver
+mouseX +mouseY
+sound +backgroundX
+backgroundY +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton +enterState
+getID
MenuGame
+playNow +background
+Story +Bantuan
+Kembali +logo
+playNowOver +StoryOver
+BantuanOver +KembaliOver
+cloud +cloud2
+gatotX +gatotY
+mouseX +mouseY
+cloudX +cloudY
+sound +playNowX
+playNowY +storyX
+storyY +bantuanX
+bantuanY +kembaliX
+kembaliY +logoX
+logoY +music
+MenuGameint state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton1 +isMouseOverPlayButton2
+isMouseOverPlayButton3 +isMouseOverPlayButton4
+isMouseOverPlayButton5 +isMouseOverPlayButton6
+enterState +getID
Scene1
+background +Skip
+Next +SkipOver
+NextOver +cloud
+cloud2 +hiker
+moon +text
+mastabaSheet +tandaSheet
+mastabaAnimation +tandaAnim
+mouseX +mouseY
+cloudX +cloudY
+hikerX +hikerY
+moonX +moonY
+textX +textY
+sound +music
+music2
+Scene1int state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton1 +isMouseOverPlayButton2
+enterState +getID
Scene2
+background +Skip
+Next +SkipOver
+NextOver +cloud
+cloud2 +moon
+text +gatotSheet
+gatotAnimation +mouseX
+mouseY +cloudX
+cloudY +gatotkacaX
+gatotkacaY +textX
+textY +sound
+music2
+Scene2int state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton1 +isMouseOverPlayButton2
+enterState +getID
Scene3
+background +text
+earth +satelit
+Skip +SkipOver
+gatotSheet +helpSheet
+gatot2Sheet +signalSheet
+gatotAnimation +helpAnim
+gatot2Animation +signalAnimation
+mouseX +mouseY
+gatotkacaX +gatotkacaY
+gatotX +gatotY
+textX +textY
+satelitX +satelitY
+earthX +earthY
+sound +music2
+Scene3int state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton1 +enterState
+getID
LevelSatu
+background +background2
+road +road2
+cloud +cloud1
+level1 +jet
+mainCursor +scoreImg
+darah +targetImg
+powerImg +Next
+NextOver +blackLayer
+r +enemys
+enemies +powerUp
+SPAWN_CHANCE +SPAWN_CHANCE2
+SPAWN_OBJEK +mouseX
+mouseY +p
+b +h
+power +target
+sound +sound2
+sound3 +sound4
+Delta +score
+music +music2
+LevelSatuint state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton2 +enterState
+getID
Soldier
+DELAY +delta
+pos +bullets
+current +RADIUS_SQARED
+lives +alive
+sound +SoldierVector2f pos, int maxBullets
+rendergc, g: void +initgc: void
+updategc, t: void +fireBulletvector2f vec, Bullet b: void
+checkBulletCollisionBullet[] otherBullets: void +checkBulletCollision2Bullet2[] otherBullets: void
+checkBulletCollision3Bullet3[] otherBullets: void +checkBulletCollision4Bullet4[] otherBullets: void
+Bullet[] getBullets: void +Vector2f getPos: void
+die: void +boolean isAlive: void
+getID
Player
+DELAY +gatotkaca
+isKeyPressed1 +isKeyPressed2
+sound +playerSheet
+playerAnimation +PlayerVector2f pos: void
+initgc: void +rendergc, g: void
+updategc, t: void +die: void
+getID
Enemy
+DELAY +p
+gatot +alienSheet
+alienAnimation +EnemyVector2f pos, Player p: void
+rendergc, g: void +updategc, t: void
+initgc: void
Enemy2
+DELAY +p
+gatot +alienSheet
+alienAnimation +Enemy2Vector2f pos, Player p: void
+rendergc, g: void +updategc, t: void
+initgc: void
EnemyLv2
+DELAY +p
+gatot +alienSheet
+alienAnimation +EnemyLv2Vector2f pos, Player p: void
+rendergc, g: void +updategc, t: void
+initgc: void
SphareUfo
+DELAY +p
+gatot +alienSheet
+alienAnimation +SphareUfoVector2f pos, Player p: void
+rendergc, g: void +updategc, t: void
+initgc: void
SuicideEnemy
+DELAY +p
+gatot +alienSheet
+alienAnimation +SuicideEnemyVector2f pos, Player p: void
+rendergc, g: void +updategc, t: void
+initgc: void
Ufo
+DELAY +p
+gatot +alienSheet
+alienAnimation +UfoVector2f pos, Player p: void
+rendergc, g: void +updategc, t: void
+initgc: void
Ufo2
+DELAY +p
+gatot +alienSheet
+alienAnimation +Ufo2Vector2f pos, Player p: void
+rendergc, g: void +updategc, t: void
+initgc: void
Meteor
+mastabaSheet +mastabaAnimation
+MeteorVector2f pos, Player p: void +rendergc, g: void
+updategc, t: void +initgc: void
Head
+mastabaSheet +mastabaAnimation
+HeadVector2f pos, Player p: void +rendergc, g: void
+updategc, t: void +initgc: void
PowerUp
+mastabaSheet +mastabaAnimation
+PowerUpVector2f pos, Player p: void +rendergc, g: void
+updategc, t: void +initgc: void
SkaterBoy
+DELAY +playerSheet
+playerAnimation +SkaterBoyVector2f pos: void
+initgc: void +rendergc, g: void
+updategc, t: void +die: void
+getID: void
Soldier2
+DELAY +delta
+pos +bullets2
+current +RADIUS_SQARED
+lives +alive
+sound +Soldier2Vector2f pos, int maxBullets: void
+rendergc, g: void +initgc: void
+updategc, t: void +fireBulletVector2f vec, Bullet2 b: void
+checkBulletCollisionBullet2[] otherBullets: void +getBullets2: void
+getPos: void +die: void
+isAlive: void +getID: void
LevelDua
+r +enemys
+enemies +ufos
+powerUp +meteorobj
+SPAWN_CHANCE1 +SPAWN_CHANCE2
+SPAWN_OBJEK +mouseX
+mouseY +p
+b +re
+power +target
+sound +sound2
+sound3 +sound4
+Delta +score
+music
+LevelDuaint state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton2 +enterState
+getID: void
LevelTiga
+r +enemys
+enemies +headobj
+powerUp +SPAWN_CHANCE
+SPAWN_CHANCE2 +SPAWN_OBJEK
+SPAWN_ROCKET +mouseX
+mouseY +p
+b +j
+power +target
+sound +sound2
+sound3 +Delta
+score +music
+music2
+LevelTigaint state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+enterState +getID: void
Soldier4
+DELAY +delta
+pos +bullets4
+current +RADIUS_SQARED
+lives +alive
+sound +Soldier4Vector2f pos, int maxBullets: void
+rendergc, g: void +initgc: void
+updategc, t: void +fireBulletVector2f vec, Bullet4 b: void
+checkBulletCollisionBullet4[] otherBullets: void +getBullets4: void
+getPos: void +die: void
+isAlive: void +getID: void
HeroChilds
+DELAY +playerSheet
+playerAnimation +HeroChildsVector2f pos: void
+initgc: void +rendergc, g: void
+updategc, t: void +die: void
+getID: void
Pause
+mouseX +mouseY
+music +sound
+Pauseint state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton1 +isMouseOverPlayButton2
+enterState +getID: void
GameOver
+mouseX +mouseY
+music2 +sound
+GameOverint state: void +initcontainer, game: void
+rendercontainer, game, g: void +updatecontainer, game, delta: void
+isMouseOverPlayButton1 +isMouseOverPlayButton2
+enterState +getID: void
Pause2
+mouseX +mouseY
+music +sound
+Pause2int state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton1 +isMouseOverPlayButton2
+enterState +getID: void
GameOver2
+mouseX +mouseY
+music2 +sound
+GameOver2int state: void +initcontainer, game: void
+rendercontainer, game, g: void +updatecontainer, game, delta: void
+isMouseOverPlayButton1 +isMouseOverPlayButton2
+enterState +getID: void
Pause3
+mouseX +mouseY
+music +sound
+Pause3int state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton1 +isMouseOverPlayButton2
+enterState +getID: void
GameOver3
+mouseX +mouseY
+music2 +sound
+GameOver3int state: void +initcontainer, game: void
+rendercontainer, game, g: void +updatecontainer, game, delta: void
+isMouseOverPlayButton1 +isMouseOverPlayButton2
+enterState +getID: void
Soldier3
+DELAY +delta
+pos +bullets3
+current +RADIUS_SQARED
+lives +alive
+sound +Soldier3Vector2f pos, int maxBullets: void
+rendergc, g: void +initgc: void
+updategc, t: void +fireBulletVector2f vec, Bullet3 b: void
+checkBulletCollisionBullet3[] otherBullets: void +getBullets3: void
+getPos: void +die: void
+isAlive: void +getID: void
Jet
+DELAY +playerSheet
+playerAnimation +JetVector2f pos: void
+initgc: void +rendergc, g: void
+updategc, t: void +die: void
+getID: void
Bullet2
pos: Vector2f dir: Vector2f
lived: int = 0 aktiv: boolean = true
MAX_LIFETIME: int = 1100 RADIUS_SQARED: int = 400
+DAMAGE: int = 2 -bulletSheet: SpriteSheet
-bulletAnimation: Animation create+Bullet2pos: Vector2f, dir: Vector2f
create+Bullet2 +initpos: Vector2f, dir: Vector2f: Bullet2
+updatet: int +rendergc: GameContainer, g: Graphics
+isAktiv: boolean +setAktivaktiv: boolean
+collideWithotherPos: Vector2f, otherRadiusSqared: int: boolean +getDamage: int
Bullet4
pos: Vector2f dir: Vector2f
lived: int = 0 aktiv: boolean = true
MAX_LIFETIME: int = 1100 RADIUS_SQARED: int = 400
+DAMAGE: int = 2 -bulletSheet: SpriteSheet
-bulletAnimation: Animation create+Bullet4pos: Vector2f, dir: Vector2f
create+Bullet4 +initpos: Vector2f, dir: Vector2f: Bullet4
+updatet: int +rendergc: GameContainer, g: Graphics
+isAktiv: boolean +setAktivaktiv: boolean
+collideWithotherPos: Vector2f, otherRadiusSqared: int: boolean +getDamage: int
Bullet4
pos: Vector2f dir: Vector2f
lived: int = 0 aktiv: boolean = true
MAX_LIFETIME: int = 1100 RADIUS_SQARED: int = 400
+DAMAGE: int = 2 -bulletSheet: SpriteSheet
-bulletAnimation: Animation create+Bullet4pos: Vector2f, dir: Vector2f
create+Bullet4 +initpos: Vector2f, dir: Vector2f: Bullet4
+updatet: int +rendergc: GameContainer, g: Graphics
+isAktiv: boolean +setAktivaktiv: boolean
+collideWithotherPos: Vector2f, otherRadiusSqared: int: boolean +getDamage: int
EndingScene
+gatotSheet +gatotAnim
+mouseX +mouseY
+sound +music
+music2 +EndingSceneint state: void
+initgc, game: void +rendergc, game, g: void
+updategc, game, delta: void +isMouseOverPlayButton1
+isMouseOverPlayButton2 +getID: void
Scene3
+background +text
+earth +satelit
+Skip +SkipOver
+gatotSheet +helpSheet
+gatot2Sheet +signalSheet
+gatotAnimation +helpAnim
+gatot2Animation +signalAnimation
+mouseX +mouseY
+gatotkacaX +gatotkacaY
+gatotX +gatotY
+textX +textY
+satelitX +satelitY
+earthX +earthY
+sound +music2
+Scene3int state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton1 +enterState
+getID
Scene3
+background +text
+earth +satelit
+Skip +SkipOver
+gatotSheet +helpSheet
+gatot2Sheet +signalSheet
+gatotAnimation +helpAnim
+gatot2Animation +signalAnimation
+mouseX +mouseY
+gatotkacaX +gatotkacaY
+gatotX +gatotY
+textX +textY
+satelitX +satelitY
+earthX +earthY
+sound +music2
+Scene3int state: void +initgc, game: void
+rendergc, game, g: void +updategc, game, delta: void
+isMouseOverPlayButton1 +enterState
+getID