Skenario Use Case Mulai Permainan Level 3 Diagram ActivityMulai Permainan

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