4. Diagram Activity Permainan Pada Level 2
Proses ini terjadi apabila pemain telah menyelesaikan permainan pada The Legend Of Cursed Amulet level 1.Maka sistem akan menampilkan arena pada
level 2 dan pemain harus menyelesaikan permainan pada level 2, apabila misi permainan akan melanjutkan permainan ke level selanjutnua.
Diagram Activity mulai permainan level2 terdapat pada gambar 3.16.
Diagram Activity Mulai Permainan Level 2 The Legend Of
Gambar 3.16.
Cursed Amulet
Aktor Aplikasi Permainan The Legend Of Cursed Amulet
Menggerakkan Karakter hero bergerak
cek tabrakan hero
hero menabrak musuh cek life poin hero
menampilkan permainan berakhir menampilkan hero bergerak
tidak
tidak ya
life=0 hero tidak menabrak
life0
tidak Menekan tombol B
hero menembak peluru cek tabrakan peluru
ya
peluru menabrak musuh musuh mati
cek jumlah musuh
Menampilkan arena level 3 ya
tidak
ya jumlahMusuh=0
jumlahMusuh0 life musuh berkurang
life tidak berkurang
5. Diagram Activity Permainan Pada Level 3
Proses ini terjadi apabila pemain telah menyelesaikan permainan pada The Legend Of Cursed Amulet level 2.Maka sistem akan menampilkan arena pada
level 3 dan pemain harus menyelesaikan permainan pada level 3, apabila misi permainan gagal maka pemain akan kembali bermain ke titik awal permainan
tersebut.
Diagram Activity mulai permainan level3 terdapat pada gambar 3.17.
Diagram Activity Mulai Permainan Level 3 The Legend Of Gambar 3.17.
Cursed Amulet
Aktor Aplikasi Permainan The Legend Of Cursed Amulet
Menggerakkan Karakter hero bergerak
cek tabrakan hero
hero menabrak musuh cek life poin hero
menampilkan permainan berakhir menampilkan hero bergerak
tidak
tidak ya
life=0 hero tidak menabrak
life0
tidak Menekan tombol B
hero menembak peluru cek tabrakan peluru
ya
peluru menabrak musuh musuh mati
cek jumlah musuh
Menampilkan informasi permainan selesai ya
tidak
ya jumlahMusuh=0
jumlahMusuh0 life musuh berkurang
life tidak berkurang
89
Animation
boundary -numImages: int
-ticksStopped: boolean -isRepeating: boolean
-animTotalTime: int -animPeriod: int
-seqDuration: int -showPeriod: int
-imPosition: int
+Animation +loadImage
+setAnimImagesFromOneFile +setAnimImagesFromFiles
+updateImage +getCurrentImage
+stop +isStopped
+resume +draw
AStarPathFinder
entity -closed: ArrayList
-maxSearchDistance: int -allowDiagMovement: boolean
+AStarPathFinder +findPath
getFirstInOpen addToOpen
inOpenList removeFromOpen
addToClosed inClosedList
removeFromClosed isValidLocation
+getMovementCost +getHeuristicCost
Bullet
+Bullet +update
+move
ClosestHeuristic
+getCost
Fall
boundary ~image
~y: int ~t: int
~orig: int ~x: double
~inc: double +Fall
+act
FallingObjects
boundary +act
Game_Over
boundary +act
GameWorldManager
boundary -TILE_SIZE: int = 64
-tiles: ArrayList -sprites: ArrayList
-sprites2: ArrayList -sprites3: ArrayList
+imMoveSize: int +canMoveRight: boolean
+canMoveLeft: boolean +canScroll: boolean = false
+anpcNum: int +nnpcNum: int
+fnpcNum: int
+GameWorldManager +init
+setMoveFlag +draw
+update +loadTileMap
+loadImage +getTileCollision
+worldCollisionHorizontal +worldCollisionVertical
+spriteCollision +getOffsetY
+setOffsetY +getOffsetX
+getSprites +getSprites2
+getSprites3 +isScrollLeft
+isScrollRight
Instructions_Button
control +act
Instructions_Menu
boundary +Instructions_Menu
+prepare
Intro
boundary ~img1: GreenfootImage
~img2: GreenfootImage ~img3: GreenfootImage
~img4: GreenfootImage ~stop: boolean = false
+Intro +act
Life
+Life
menu
boundary +menu
+prepare
Menu_Button
control +act
MusicPlayer
entity -sequence
-sequencer -file
+MusicPlayer +loadMusic
+playMusic +stopPlaying
+isStopped +repeating
+replay
myWorld
control -state: int
-GameRunning: int = 0 -GameOver: int = 1
-GamePaused: int = 2 -GameFinish: int = 3
-enemy: ArrayList -score: int
~keycode: String -font: Font
-levelUp -canShowRank
+FPS: int = 50 +WIDTH: int = 990
+HEIGHT: int = 600 +direction: int
+SOUTH: int = 4 +NORTH: int = 1
+EAST: int = 2 +WEST: int = 3
+TILESIZE: int = 64 +width: int = 1906
+heigth: int = 1000 +isGameOver
+isMusicStopped +bullets: ArrayList
+backX: int = 0 +leftPressed
+rightPressed +TOTALLEVEL: int = 3
+level: int = 1 +getAmulet
+getAmulet2 +getAmulet3
-pathResolution: int = 20
+myWorld +getWorld
+stopped +started
+gamePaint +gameRender
+gameUpdate +showRank
+act +testkeyPressed
+checkGameOver +loadLevel
+checkShooting +changeState
+getPathResolution +checkCollision
NPC
entity -rotation: double
-TURN_PERCENT: double = 0.5 -turn: double
-ACCEL_PIXELS_PER_SECOND -acceleration: double
-MAX_SPEED_PIXELS_PER_SECOND -maxSpeed: double
-speed: double -GRAVITY: int = 1
-JUMPSPEED: int = 20 -JumlahHidup: int = 2
-numImages: int +runningRight: boolean
+runningLeft: boolean +standRight: boolean
+standLeft: boolean -offsetX: int
-offsetY: int -jumpSpeed: int
+isJumping: boolean = false +canJump: boolean = false
+onGround: boolean = false +npcType: int
+ANPC: int = 0 +SNPC: int = 1
+TNPC: int = 2 +ZNPC: int = 3
+npcName: String +LIVE: int = 2
-posisiRoket: Point = new Point -foundPlayer: boolean = false
-rockX: int -rockY: int
-path: ArrayList -followingPath: boolean = false
-standingStill: boolean = false -walkingSpeed: double = 1.0
+NPC +jump
+jumpStopped +drop
+update +move
+moveint +runAStar
+hasFoundPlayer +thisPosition
+nextPosition +draw
-setJumpSpeed +atEdge
+toString
NPCFINAL
entity -GRAVITY: int = 1
-JUMPSPEED: int = 20 -numImages: int
+runningRight: boolean +runningLeft: boolean
+standRight: boolean +standLeft: boolean
-offsetX: int -offsetY: int
-jumpSpeed: int +isJumping: boolean = false
+canJump: boolean = false +onGround: boolean = false
+npcType: int +FNPC: int = 0
+SNPC: int = 1 +npcName: String
+LIVE: int = 10
+NPCFINAL +jump
+jumpStopped +drop
+update +move
+hasFoundPlayer +thisPosition
+nextPosition +draw
+drawMim -setJumpSpeed
NPCNEW
entity -GRAVITY: int = 1
-JUMPSPEED: int = 20 -numImages: int
+runningRight: boolean +runningLeft: boolean
+standRight: boolean +standLeft: boolean
-offsetX: int -offsetY: int
-jumpSpeed: int +isJumping: boolean = false
+canJump: boolean = false +onGround: boolean = false
+npcType: int +NNPC: int = 0
+SNPC: int = 1 +npcName: String
+LIVE: int = 3
+NPCNEW +jump
+jumpStopped +drop
+update +move
+hasFoundPlayer +thisPosition
+nextPosition +draw
+drawMim -setJumpSpeed
Path
entity -steps: ArrayList
+Path +getLength
+getStep +getX
+getY +appendStep
+prependStep +contains
Player
entity -GRAVITY: int = 1
-INISPEED: int = 20 -offsetX: int
-offsetY: int -count: int = 0
-hearts: ArrayList -scrollCount: int
-coord_x: int = 0 -coord_y: int = 0
+runningRight: boolean +runningLeft: boolean
+standRight: boolean +standLeft: boolean
+jumpSpeed: int +isJumping: boolean = false
+canJump: boolean = false +onGround: boolean = false
+runningState: int = 2 +UNATTACK: int = 3
+UpScrollY: int = 4 +DownScrollY: int = 5
+RUNRT: int = 0 +RUNLT: int = 1
+STDRT: int = 2 +STDLT: int = 3
+LFNUM: int = 3 +lives: int = LFNUM
+Player +update
+drawHearts +updateHearts
+resetCount +move
+thisPosition +nextPosition
+draw -setJumpSpeed
+getCoordX +getCoordY
+getCoordXY +atEdge
sound
entity -music: GreenfootSound
+sound +playsound
+stop +play
Sprite
boundary locX: int
locY: int dx: int
dy: int -numImages: int
-imFileName: String -width: int
-height: int -SIZE: int = 12
isLooping: boolean -pWidth: int
-pHeight: int -isActive: boolean = true
state: int MOVE: int = 0
DISMISS: int = 1 ISHITTED: int = 2
ISLIVE: int = 3
+Sprite +setImage
+loopImage +stopLooping
+isActive +setActive
+move +draw
+setDX +setDY
+getDX +getDY
+setX +setY
+getX +getY
+getHeight +getWidth
+changeState +getState
Start_Button
control +act
TextBar
boundary ~BackGround: GreenfootImage
~Portrait: GreenfootImage ~Buffer: GreenfootImage
~Value: String ~P: int
~Pen: String = ~Line: String =
~Page: String = ~Delay: int
~Timer: int ~End: boolean = false
~TextStartAt_X: int = 100 ~TextStartAt_Y: int = 145
~TextWidth_Max: int = 40 ~TextHeight_Max: int = 4
~TextWidth: int = 15 ~TextHeight: int = 25
~change: boolean = false ~intro: int = 0
~BROWN: Color
+TextBar +act
+Draw +Write
+setPage +changePage
TileMap
entity -xMapHead: int
-offsetX: int -screenWidth: int
-screenHeight: int -mapWidth: int
-mapMoveSize: int +TILE_SIZE: int = 64
+offsetY: int +tMapMoveRight
+tMapMoveLeft
+TileMap +getMapHead
+getWidth +getHeight
+getTile +setTile
+tilesToPixels +pixelsToTiles
+scroll +drawTileMap
+drawMim
3 .2
.5 .4
. D
ia g
ra m
Cl a
ss
D ia
g ra
m Cl
a ss
a p
lik as
i p er
m ai
n an
T h
e L
eg en
d O
f C u
rs ed
A m
u le
tte rd
ap at
p ad
a g
a m
b ar
3 .1
8 .
D ia
g ra
m C
la ss
P er
m a
in a
n Th
e
Le g
en d
O f
C u
rs ed
A m
u le
t
G a
m b
ar 3
.1 8
.
3.2.5.5. Diagram
Sequence
Berikut ini merupakan diagram Sequence yang terdapat pada aplikasi permainan The Legend Of Cursed Amulet berdasarkan Use Case yang ada.
A. Diagram Sequence dari Use Case : Mulai
Diagram Sequence untuk memulai permainan terdapat pada gambar 3.19.
Diagram Sequence untuk Use CaseMulai
Gambar 3.19.
sb : Start_Button intro : Intro
sound : Sound : Pemain
tb : TextBar fo : FallingObjects
fall : Fall mw : myWorld
1 : Memilih tombol mulai 2 : act
3 : intro 4 : play
5 : act 6 : stop
7 : Menampilkan Intro 8 : Menekan tombol spasi
9 : changePage 10 : setPage
11 : draw 12 : write
13 : myWorld 14 : Menampilkan arena level 1