pxt-calliope/docs/reference/game/game-library.md

3.7 KiB

Game Library

The game library supports simple single-player time-based games. The player has a sprite, number of lives and a score. The game has a sprite, number of levels and a countdown clock. The general goal of a game will be to move the sprite and achieve a top score before time runs out or the number of lives goes to zero.

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)

Create sprite

Create sprite with x, y coordinates and returns a LED Sprite. Create a new LED sprite.

export function createSprite(x: number, y: number) : micro_bitSprites.LedSprite

Move

Sprite move by a certain number

export function move(_this: micro_bitSprites.LedSprite, leds: number)

Turn

Rotates a sprite to the right by a certain number of degrees

export function turnRight(_this: micro_bitSprites.LedSprite, degrees: number)

Rotates a sprite to the left by a certain number of degrees

export function turnLeft(_this: micro_bitSprites.LedSprite, degrees: number)

Change

Sprite will change the x position by this number

export function changeXBy(_this: micro_bitSprites.LedSprite, x: number)

Sprite will change the y position by this number

export function changeYBy(_this: micro_bitSprites.LedSprite, y: number)

Set

Sprite will change the x position by this number

export function setX(_this: micro_bitSprites.LedSprite, x: number)

Sprite will change the y position by this number

export function changeYBy(_this: micro_bitSprites.LedSprite, y: number)

If on edge, bounce

Sprite - If the sprite is on the edge, the sprite will bounce

export function ifOnEdge_Bounce(_this: micro_bitSprites.LedSprite)

Change score by

When a player achieves a goal, you can increase the game score

  • add score points to the current score

export function addScore(points: number)

Score

  • set the current score to a particular value.
export function setScore(value: number)
  • get the current score value

export function score() : number

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

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.
let running = game.isRunning()

You can also end the game by calling the game -> game over function:

game.gameOver()

Lessons

game of chance | game counter