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
55
3.1.5.4 Sequence Diagram
Sequence Diagram menggambarkan interaksi antar masing-masing objek pada setiap use case dalam urutan waktu. Interaksi ini berupa
pengiriman serangkaian data antar objek-objek yang saling berinteraksi. Sequence Diagram pada game Gatotkaca Evolution terdiri dari sequence
diagram memainkan permainan, sequence diagram menampilkan credits, sequence diagram menghentikan aplikasi, sequence diagram menampilkan
menu level, sequence diagram menampilkan story, sequence diagram menampilkan menu bantuan, sequence diagram menampilkan level 1,
sequence diagram menampilkan level 2 dan sequence diagram menampilkan level 3. Berikut penjelasan dari masing-masing sequence diagram :
1. Sequence Diagram memulai permainan
Diagram ini menjelaskan interaksi antar partisipan di dalam aktivitas memainkan permainan dalam urutan waktu. Untuk lebih jelasnya
dapat dilihat pada gambar di bawah ini.
Gambar 3.13. Sequence Diagram memulai permainan
: Pemain Menu
MenuGame
1 : main 2 : getID
3 : isMouseOverPlayButton1 4 : enterState
5 : menampilkan Play Menu
56
2. Sequence Diagram menampilkan bantuan