Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
ff3c31f077
2 changed files with 236 additions and 41 deletions
163
README.md
Normal file
163
README.md
Normal file
|
|
@ -0,0 +1,163 @@
|
||||||
|
# RaspberryRocketeer
|
||||||
|
|
||||||
|
## Class Diagram of all classes
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
classDiagram
|
||||||
|
direction BT
|
||||||
|
class Collidable {
|
||||||
|
collides(o: Entity) boolean
|
||||||
|
}
|
||||||
|
class Database {
|
||||||
|
any _db
|
||||||
|
any db
|
||||||
|
}
|
||||||
|
class Entity {
|
||||||
|
constructor(position: Position, width: number, height: number, fill: number)
|
||||||
|
Position _position
|
||||||
|
number _width
|
||||||
|
number _height
|
||||||
|
number fill
|
||||||
|
boolean _showHitbox
|
||||||
|
update() void
|
||||||
|
draw() void
|
||||||
|
Position position
|
||||||
|
number width
|
||||||
|
number height
|
||||||
|
boolean showHitbox
|
||||||
|
}
|
||||||
|
class Game {
|
||||||
|
number id
|
||||||
|
number score
|
||||||
|
string playtime
|
||||||
|
Date date
|
||||||
|
number userId
|
||||||
|
}
|
||||||
|
class GamePgPromiseRepository {
|
||||||
|
insert(game: Game) Promise~Game~
|
||||||
|
serialize(raw: any) Game
|
||||||
|
}
|
||||||
|
class GameRepository {
|
||||||
|
insert(game: Game) Promise~Game~
|
||||||
|
}
|
||||||
|
class HighscoreLeaderboard
|
||||||
|
class HighscoreLeaderboardPgPromiseRepository {
|
||||||
|
getAll() Promise~HighscoreLeaderboard~
|
||||||
|
serialize(raw: any) HighscoreLeaderboard
|
||||||
|
}
|
||||||
|
class HighscoreLeaderboardRepository {
|
||||||
|
getAll() Promise~HighscoreLeaderboard~
|
||||||
|
}
|
||||||
|
class Leaderboard
|
||||||
|
class LeaderboardEntry {
|
||||||
|
number username
|
||||||
|
number rank
|
||||||
|
T score
|
||||||
|
}
|
||||||
|
class Obstacle {
|
||||||
|
constructor(position: Position, obstacleWidth: number, obstacleHeight: number, pipeImagePath: string)
|
||||||
|
Pipe pipeTop
|
||||||
|
Pipe pipeBottom
|
||||||
|
number padding
|
||||||
|
number speed
|
||||||
|
number _distanceBetweenPipes
|
||||||
|
number _startX
|
||||||
|
resetPosition() void
|
||||||
|
randomizeHeight() void
|
||||||
|
randomRange(min: number, max: number) number
|
||||||
|
update() void
|
||||||
|
draw() void
|
||||||
|
collides(o: Entity) boolean
|
||||||
|
any startX
|
||||||
|
any distanceBetweenPipes
|
||||||
|
}
|
||||||
|
class Pipe {
|
||||||
|
constructor(positionX: number, width: number, height: number)
|
||||||
|
any _image
|
||||||
|
update() void
|
||||||
|
draw() void
|
||||||
|
move(speed: number) void
|
||||||
|
collides(o: Entity) boolean
|
||||||
|
any image
|
||||||
|
}
|
||||||
|
class Position {
|
||||||
|
constructor(x: number, y: number)
|
||||||
|
number _x
|
||||||
|
number _y
|
||||||
|
number x
|
||||||
|
number y
|
||||||
|
}
|
||||||
|
class Raspberry {
|
||||||
|
constructor(image: string)
|
||||||
|
number lift
|
||||||
|
number gravity
|
||||||
|
number _velocity
|
||||||
|
any _image
|
||||||
|
Position position
|
||||||
|
number maxVelocity
|
||||||
|
number WIDTH
|
||||||
|
number HEIGHT
|
||||||
|
number FILL
|
||||||
|
update() void
|
||||||
|
applyGravity() void
|
||||||
|
forceBoundaries() void
|
||||||
|
boost() void
|
||||||
|
draw() void
|
||||||
|
number velocity
|
||||||
|
any image
|
||||||
|
}
|
||||||
|
class TimeLeaderboard
|
||||||
|
class TimeLeaderboardPgPromiseRepository {
|
||||||
|
getAll() Promise~TimeLeaderboard~
|
||||||
|
serialize(raw: any) TimeLeaderboard
|
||||||
|
}
|
||||||
|
class TimeLeaderboardRepository {
|
||||||
|
getAll() Promise~TimeLeaderboard~
|
||||||
|
}
|
||||||
|
class User {
|
||||||
|
number id
|
||||||
|
string name
|
||||||
|
}
|
||||||
|
class UserPgPromiseRepository {
|
||||||
|
getById(id: number) Promise~User~
|
||||||
|
getByName(name: string) Promise~User~
|
||||||
|
withIdExists(id: number) Promise~boolean~
|
||||||
|
withNameExists(name: string) Promise~boolean~
|
||||||
|
insert(user: Omit~User, "id"~) Promise~User~
|
||||||
|
serialize(raw: any) User
|
||||||
|
}
|
||||||
|
class UserRepository {
|
||||||
|
getById(id: number) Promise~User~
|
||||||
|
getByName(name: string) Promise~User~
|
||||||
|
withIdExists(userId: number) Promise~boolean~
|
||||||
|
withNameExists(username: string) Promise~boolean~
|
||||||
|
insert(user: Omit~User, "id"~) Promise~User~
|
||||||
|
}
|
||||||
|
class UserScores {
|
||||||
|
number userId
|
||||||
|
number highscore
|
||||||
|
number totalScore
|
||||||
|
string totalPlaytime
|
||||||
|
number averageScore
|
||||||
|
number gamesPlayed
|
||||||
|
}
|
||||||
|
class UserScoresPgPromiseRepository {
|
||||||
|
getById(id: number) Promise~UserScores~
|
||||||
|
serialize(raw: any) UserScores
|
||||||
|
}
|
||||||
|
class UserScoresRepository {
|
||||||
|
getById(userId: number) Promise~UserScores~
|
||||||
|
}
|
||||||
|
|
||||||
|
GamePgPromiseRepository --> GameRepository
|
||||||
|
HighscoreLeaderboardPgPromiseRepository --> HighscoreLeaderboardRepository
|
||||||
|
Obstacle ..> Collidable
|
||||||
|
Obstacle --> Entity
|
||||||
|
Pipe ..> Collidable
|
||||||
|
Pipe --> Entity
|
||||||
|
Raspberry --> Entity
|
||||||
|
TimeLeaderboardPgPromiseRepository --> TimeLeaderboardRepository
|
||||||
|
UserPgPromiseRepository --> UserRepository
|
||||||
|
UserScoresPgPromiseRepository --> UserScoresRepository
|
||||||
|
|
||||||
|
```
|
||||||
|
|
@ -1,48 +1,80 @@
|
||||||
```mermaid
|
```mermaid
|
||||||
classDiagram
|
classDiagram
|
||||||
Entity <|-- Raspberry
|
direction BT
|
||||||
Entity <|-- Obstacle
|
class Collidable {
|
||||||
Entity <|-- Pipe
|
collides(o: Entity) boolean
|
||||||
Entity: -number fill
|
|
||||||
Entity: +Position position
|
|
||||||
Entity: +number width
|
|
||||||
Entity: +number height
|
|
||||||
Entity: +abstract update()
|
|
||||||
Entity: +draw()
|
|
||||||
Entity: -detectCollision(Entity other)
|
|
||||||
|
|
||||||
class Raspberry{
|
|
||||||
-number lift
|
|
||||||
-number gravity
|
|
||||||
-static number maxVelocity
|
|
||||||
+number velocity
|
|
||||||
|
|
||||||
-applyGravity()
|
|
||||||
-forceBoundaries()
|
|
||||||
-boost()
|
|
||||||
+update()
|
|
||||||
}
|
}
|
||||||
|
class Entity {
|
||||||
class Obstacle{
|
constructor(position: Position, width: number, height: number, fill: number)
|
||||||
-Entity pipeTop
|
Position _position
|
||||||
-Entity pipeBottom
|
number _width
|
||||||
-number distanceBetweenPipes
|
number _height
|
||||||
-number padding
|
number fill
|
||||||
-number speed
|
boolean _showHitbox
|
||||||
-static number startX
|
update() void
|
||||||
|
draw() void
|
||||||
-randomRange()
|
Position position
|
||||||
+resetPosition()
|
number width
|
||||||
+update()
|
number height
|
||||||
+draw()
|
boolean showHitbox
|
||||||
|
}
|
||||||
|
class Obstacle {
|
||||||
|
constructor(position: Position, obstacleWidth: number, obstacleHeight: number, pipeImagePath: string)
|
||||||
|
Pipe pipeTop
|
||||||
|
Pipe pipeBottom
|
||||||
|
number padding
|
||||||
|
number speed
|
||||||
|
number _distanceBetweenPipes
|
||||||
|
number _startX
|
||||||
|
resetPosition() void
|
||||||
|
randomizeHeight() void
|
||||||
|
randomRange(min: number, max: number) number
|
||||||
|
update() void
|
||||||
|
draw() void
|
||||||
|
collides(o: Entity) boolean
|
||||||
|
any startX
|
||||||
|
any distanceBetweenPipes
|
||||||
}
|
}
|
||||||
|
|
||||||
class Pipe {
|
class Pipe {
|
||||||
+update()
|
constructor(positionX: number, width: number, height: number)
|
||||||
|
any _image
|
||||||
|
update() void
|
||||||
|
draw() void
|
||||||
|
move(speed: number) void
|
||||||
|
collides(o: Entity) boolean
|
||||||
|
any image
|
||||||
|
}
|
||||||
|
class Position {
|
||||||
|
constructor(x: number, y: number)
|
||||||
|
number _x
|
||||||
|
number _y
|
||||||
|
number x
|
||||||
|
number y
|
||||||
|
}
|
||||||
|
class Raspberry {
|
||||||
|
constructor(image: string)
|
||||||
|
number lift
|
||||||
|
number gravity
|
||||||
|
number _velocity
|
||||||
|
any _image
|
||||||
|
Position position
|
||||||
|
number maxVelocity
|
||||||
|
number WIDTH
|
||||||
|
number HEIGHT
|
||||||
|
number FILL
|
||||||
|
update() void
|
||||||
|
applyGravity() void
|
||||||
|
forceBoundaries() void
|
||||||
|
boost() void
|
||||||
|
draw() void
|
||||||
|
number velocity
|
||||||
|
any image
|
||||||
}
|
}
|
||||||
|
|
||||||
class Position{
|
Obstacle ..> Collidable
|
||||||
+int x
|
Obstacle --> Entity
|
||||||
+int y
|
Pipe ..> Collidable
|
||||||
}
|
Pipe --> Entity
|
||||||
```
|
Raspberry --> Entity
|
||||||
|
|
||||||
|
```
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue