63 lines
1.4 KiB
Plaintext
63 lines
1.4 KiB
Plaintext
@startuml
|
|
package com.iluwatar.gameloop {
|
|
class App {
|
|
- GAME_LOOP_DURATION_TIME : int {static}
|
|
- LOGGER : Logger {static}
|
|
+ App()
|
|
+ main(args : String[]) {static}
|
|
}
|
|
class Bullet {
|
|
- position : float
|
|
+ Bullet()
|
|
+ getPosition() : float
|
|
+ setPosition(position : float)
|
|
}
|
|
class FixedStepGameLoop {
|
|
- MS_PER_FRAME : long {static}
|
|
+ FixedStepGameLoop()
|
|
# processGameLoop()
|
|
# update()
|
|
}
|
|
class FrameBasedGameLoop {
|
|
+ FrameBasedGameLoop()
|
|
# processGameLoop()
|
|
# update()
|
|
}
|
|
class GameController {
|
|
# bullet : Bullet
|
|
+ GameController()
|
|
+ getBulletPosition() : float
|
|
+ moveBullet(offset : float)
|
|
}
|
|
abstract class GameLoop {
|
|
# controller : GameController
|
|
- gameThread : Thread
|
|
# logger : Logger
|
|
# status : GameStatus
|
|
+ GameLoop()
|
|
+ isGameRunning() : boolean
|
|
# processGameLoop() {abstract}
|
|
# processInput()
|
|
# render()
|
|
+ run()
|
|
+ stop()
|
|
}
|
|
enum GameStatus {
|
|
+ RUNNING {static}
|
|
+ STOPPED {static}
|
|
+ valueOf(name : String) : GameStatus {static}
|
|
+ values() : GameStatus[] {static}
|
|
}
|
|
class VariableStepGameLoop {
|
|
+ VariableStepGameLoop()
|
|
# processGameLoop()
|
|
# update(elapsedTime : Long)
|
|
}
|
|
}
|
|
GameLoop --> "-status" GameStatus
|
|
GameController --> "-bullet" Bullet
|
|
GameLoop --> "-controller" GameController
|
|
FixedStepGameLoop --|> GameLoop
|
|
FrameBasedGameLoop --|> GameLoop
|
|
VariableStepGameLoop --|> GameLoop
|
|
@enduml |