Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Tu script puede definir estas funciones especiales que el motor llama automáticamente:

start()

Se llama una vez cuando comienza el juego. Úsalo para la inicialización.

func start() {
    setScene(level1)
    setX(player, 100)
    setY(player, 100)
    print("¡Juego iniciado!")
}

onUpdate(dt)

Se llama cada fotograma. El parámetro dt es el tiempo delta (tiempo desde el último fotograma en segundos).

var speed = 100

func onUpdate(dt) {
    if (isKeyHeld(KEY_RIGHT())) {
        setX(player, getX(player) + speed * dt)
    }
    if (isKeyHeld(KEY_LEFT())) {
        setX(player, getX(player) - speed * dt)
    }
}

La UI también se dibuja desde onUpdate(dt). Las coordenadas de UI utilizan una resolución de pantalla virtual. Por defecto, ese espacio de UI es 100 x 100, y puedes cambiarlo con setUIResolutionX() y setUIResolutionY(). El tamaño de fuente, color de fuente y color de elemento pueden ser colocados en pilas temporales por fotograma mientras construyes la UI actual.

var musicOn = true
var volume = 5

func onUpdate(dt) {
    uiPushElementColor(28, 40, 70, 220)
    uiBox(3, 3, 30, 26)
    uiPushFontSize(3)
    uiPushFontColor(255, 220, 120)
    uiLabel("PAUSADO", 6, 6)
    uiPopFontColor()
    uiPopFontSize()

    uiPushFontSize(2)
    uiPushFontColor(240, 245, 255)
    if (uiButton("CONTINUAR", 6, 12, 20, 6) == UI_CLICKED()) {
        paused = false
    }

    musicOn = uiToggle("MÚSICA", musicOn, 6, 20, 22, 6)
    uiPopFontColor()
    uiPopFontSize()

    volume = uiSlider("VOL", volume, 0, 10, 6, 28, 24, 6)
    uiPopElementColor()
}

onCollision(objA, objB)

Se llama cuando dos objetos colisionan. objA es siempre un objeto Dinámico o de Activación (ver Sistema de Colisiones para más detalles).

func onCollision(objA, objB) {
    var nameA = getName(objA)
    var nameB = getName(objB)

    if (nameA == "Jugador" && nameB == "Moneda") {
        removeObject(level1, objB)
        score = score + 1
    }
}

end()

Se llama cuando el juego se cierra.

func end() {
    print("¡Gracias por jugar!")
}