# Game Library The game library #docs 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. ## Block Editor  ## KindScript 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](/functions/game-library/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](/functions/game-library/move) Sprite move by a certain number  ``` export function move(_this: micro_bitSprites.LedSprite, leds: number) ``` ### [Turn](/functions/game-library/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](/functions/game-library/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](/functions/game-library/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](/functions/game-library/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](/functions/game-library/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](/functions/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 ``` ### [Countdown](/functions/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](/functions/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. ``` let running = game.isRunning() ``` You can also end the game by calling the `game -> game over` function:  ``` game.gameOver() ``` ### Lessons [game of chance](/lessons/game-of-chance) | [game counter](/lessons/game-counter)