2025-10-13 12:36:35 +02:00

4.6 KiB

Gamelib

Models

Color

A type of string.

Represents HTML colors. This includes named colors such as blue, red, blanchedalmond, lavenderblush, and rgb/hex when used with proper format. You can use lib.rgb(r, g, b) to generate a properly formatted rgb color code.

Example:

lib.drawRect(0, 0, 100, 100, "blue");
lib.drawRect(100, 0, 100, 100, lib.rgb(192, 127, 172));

Key

A type of string.

Represents JavaScript's KeyboardEvent.key (link) property.

Example:

"Enter": Enter was pressed.
"b": Lowercase 'b' was pressed.
"B": Uppercase 'B' was pressed (i.e. Shift + B)
" ": Spacebar was pressed.

/* todo: include a little html tool that listens to key events when focused and outputs what key was pressed */

KeyEventFunc

A function with no parameters that is called whenever the appropriate Key is pressed / released.

Works both as a named and anonymous function.

Example:

let playerX = 0;

// anonymous function
lib.onPress("a", function () {
    playerX -= 20;
});

// named function
function dWasPressed() {
    playerX += 20;
}
// note the lack of () after dWasPressed - we are not calling the function, we are referring to it as a variable
lib.onPress("a", dWasPressed);

LoopFunc

A function with a single parameters (deltaT) that is called whenever a game tick should run - usually about 1/60 times a second.

The deltaT parameter describes the time difference between the last tick and now, in seconds.

The name used for deltaT can be anything, it functions as any other function parameter. I.e. loopFunction(timeSinceLastCall), loopFunction(fooBar), etc.

For example:

loopFunction is called at 12:00.24 - deltaT is 0
loopFunction is called at 12:00.75 - deltaT is .51
loopFunction is called at 12:01.52 - deltaT is .77

Works both as a named and anonymous function.

Example:

let playerX = 0;

// anonymous function
lib.startGameLoop(function (deltaT) {
    playerX += 20 * deltaT;
});

// named function
function loopFunction(deltaTime) {
    playerX += 20 * deltaTime;
}
// note the lack of () after loopFunction - we are not calling the function, we are using it as a variable
lib.startGameFunction(loopFunction);

Functions

lib.println(msg: string) -> void

Print a message the debug console.

Example:

lib.println("Hello world!");
lib.println("It is a thursday.");
[console]
Hello world!
It is a thursday.

lib.startGameLoop(loopFunction: LoopFunc) -> void

Registers a gameloop function, that is called on every tick.

See also: Models.LoopFunc

lib.isPressed(key: Key) -> bool

Returns whether or not key is currently pressed.

See also: Models.Key

Example:

let playerX = 0;
lib.startGameLoop(function (deltaT) {
    if (lib.isPressed("a")) {
        playerX -= 20 * deltaT;
    }
    if (lib.isPressed("d")) {
        playerX -= 20 * deltaT;
    }
});

lib.onPress(key: Key, handlerFunction: KeyEventFunc) -> void

Calls handlerFunction whenever key is pressed.

See also: Models.Key, Models.KeyEventFunc

Example:

let isJumping = false;

lib.onPress(" ", function () {
    isJumping = true;
});

lib.onRelease(" ", function () {
    isJumping = false;
});

lib.onRelease(key: Key, handlerFunction: KeyEventFunc) -> void

The opposite of lib.onPress

lib.rgb(red: number, green: number, blue: number) -> Color

Generates a correctly formatted Color value based on red, green and blue

See also: Models.Color

Example:

lib.drawRect(100, 0, 100, 100, lib.rgb(192, 127, 172));

lib.clear(color: Color) -> void

Paints the entire screen color.

See also: Models.Color

Example:

function drawClouds() {
    /* some lib.drawRect(..) or lib.drawSprite(..) */
}

lib.startGameLoop(function () {
    lib.clear("blue");
    drawClouds();
});

lib.drawSprite(x: number, y: number, width: number, height: number, name: string) -> void

Draws a sprite imported in the sprite editor.

/* todo: link to sprite editor docs */

Example:

lib.startGameLoop(function () {
    lib.clear("blue");
    lib.drawSprite(20, 30, 20, 10, "cloud.png");
});

lib.drawRect(x: number, y: number, width: number, height: number, color: Color) -> void

Fills a rect with Color.

See also: Models.Color

Example:

function drawCloud(x, y) {
    lib.drawRect(x, y, 20, 10, "white");
}

lib.startGameLoop(function () {
    lib.clear("blue");
    drawCloud(20, 30);
    drawCloud(50, 35);
});