← Reference

The game loop: cheat sheet

Games with microStudio · In any playground, open Reference to copy these.

def init

Runs once, when the game starts. Give your variables their first values here. The engine calls it: you never do.

def init():
    global x
    x = 0

def draw

Runs after each update. Clear the screen, then draw everything where it is now. Change nothing here.

def draw():
    screen.clear("black")
    screen.fillRound(x, 0, 10, 10, "yellow")
Example
x = -80

def update():
    global x
    x += 1

def draw():
    screen.clear("rgb(10,10,40)")
    screen.fillRound(x, 0, 16, 16, "rgb(255,210,0)")
What it draws
Draws the dot where x is now; update moves it a little each frame.

Colours

A colour is text: a name, rgb(red, green, blue) with numbers from 0 to 255, or a hex code.

"red"   "rgb(255,210,0)"   "#40a0ff"
Example
def draw():
    screen.clear("rgb(10,10,40)")
    screen.fillRound(-60, 0, 40, 40, "red")
    screen.fillRound(0, 0, 40, 40, "rgb(255,210,0)")
    screen.fillRound(60, 0, 40, 40, "#40a0ff")
What it draws

Stay on the screen

After moving, put the player back if it has gone past an edge. The top is y = 100 and the bottom is y = -100.

if px < -150:
    px = -150

def update

Runs 60 times a second. Move things, check keys and keep score here. A variable it changes needs a global line.

def update():
    global x
    x += 1

global

The first line inside a function that changes a variable made outside it. Without it, Python stops with "cannot access local variable".

global score

screen.clear

Fills the whole screen with one colour. Put it first in draw(), or the last frame stays on the screen.

screen.clear("rgb(10,10,40)")
Example
def draw():
    screen.clear("rgb(30,90,160)")
What it draws

pressed

Copy this helper into your game once. pressed("LEFT") is True while the key is held. Key names: LEFT, RIGHT, UP, DOWN, SPACE, A to Z.

def pressed(key):
    return hasattr(keyboard, key) and keyboard[key] != 0

Move with keys

Inside update(): a held key moves the player a little every frame, so it glides.

if pressed("LEFT"):
    px -= 2
if pressed("RIGHT"):
    px += 2

mouse

Where the mouse is, in the same coordinates as drawing. mouse.pressed is 1 while the button is held, else 0.

mouse.x   mouse.y   mouse.pressed