154 lines
3.0 KiB
Markdown
154 lines
3.0 KiB
Markdown
# Game Library
|
|
|
|
The game library supports simple single-player time-based games. The player has a number of **lives** and a **score**. The game has a number of **levels** and a **countdown clock**. The general goal of a game will be to achieve a top score before time runs out or the number of lives goes to zero.
|
|
|
|
## Touch Develop
|
|
|
|
The code below shows a simple game where the user gets to press the button ``A`` as much times as possible in 10 seconds.
|
|
|
|
```
|
|
input.onButtonPressed(Button.A, () => {
|
|
game.addScore(1)
|
|
})
|
|
game.startCountdown(10000)
|
|
```
|
|
|
|
### [Countdown](/js/game-library/start-countdown)
|
|
|
|
If your game has a time limit, you can start a countdown in which case `game->current time` returns the remaining time.
|
|
|
|
* start a countdown with the maximum duration of the game in milliseconds.
|
|
|
|
```
|
|
export function startCountdown(ms: number)
|
|
```
|
|
|
|
### [Game over](/js/game-library/game-over)
|
|
|
|
If the `life` reaches zero or the time expires (see countdown), the game enters the **game over** mode. When the game is over, `game->is running` returns false
|
|
|
|
* check if the game still running.
|
|
|
|
```
|
|
export function isRunning() : boolean
|
|
```
|
|
|
|
Indicates if the game is display the game over sequence.
|
|
|
|
```
|
|
export function isGameOver() : boolean
|
|
```
|
|
|
|
You can also end the game by calling the `game -> game over` function:
|
|
|
|
```
|
|
export function gameOver()
|
|
```
|
|
|
|
### Score
|
|
|
|
When a player achieves a goal, you can increase the game score
|
|
|
|
[Add Point to Score](/js/game-library/add-point-to-score)
|
|
|
|
* add score points to the current score
|
|
|
|
```
|
|
export function addScore(points: number)
|
|
```
|
|
|
|
[Score](/js/game-library/score)
|
|
|
|
* set the current score to a particular value.
|
|
|
|
```
|
|
export function setScore(value: number)
|
|
```
|
|
|
|
* get the current score value
|
|
|
|
```
|
|
export function score() : number
|
|
```
|
|
|
|
### Life
|
|
|
|
Manage the player lives. When the life count reaches 0 or less, the game is over.
|
|
|
|
* remove one or more lives
|
|
|
|
```
|
|
export function removeLife(life: number)
|
|
```
|
|
|
|
* add lives
|
|
|
|
```
|
|
export function addLife(lives: number)
|
|
```
|
|
|
|
* set the life to a particular value
|
|
|
|
```
|
|
export function setLife(value: number)
|
|
```
|
|
|
|
* get the current life value
|
|
|
|
```
|
|
export function life() : number
|
|
```
|
|
|
|
### Levels
|
|
|
|
When the game increases in difficulty, you can increase the level and use that value in your game logic.
|
|
|
|
* increase the level by 1
|
|
|
|
```
|
|
export function levelUp()
|
|
```
|
|
|
|
* get the current level
|
|
|
|
```
|
|
export function level() : number
|
|
```
|
|
|
|
### Time
|
|
|
|
The game immediately starts tracking the time from the moment the device started.
|
|
|
|
* get the current time
|
|
|
|
```
|
|
export function currentTime() : number
|
|
```
|
|
|
|
You can start the time again by using `game->start stopwatch`.
|
|
|
|
* start the game timer
|
|
|
|
```
|
|
game.startStopwatch()
|
|
```
|
|
|
|
### Blink
|
|
|
|
Reports the blink duration of a `sprite` .
|
|
|
|
```
|
|
export function blink(_this: micro_bitSprites.LedSprite) : number
|
|
```
|
|
|
|
Sets the blink duration interval in milliseconds .
|
|
|
|
```
|
|
export function setBlink(sprite: micro_bitSprites.LedSprite, ms: number)
|
|
```
|
|
|
|
### Lessons
|
|
|
|
[bop it](/lessons/bop-it) | [game of chance](/lessons/game-of-chance) | [game counter](/lessons/game-counter)
|
|
|