Keep your place in this quest

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

Ihr Skript kann diese speziellen Funktionen definieren, die die Engine automatisch aufruft:

start()

Wird einmal zu Beginn des Spiels aufgerufen. Verwenden Sie es für die Initialisierung.

func start() {
    setScene(level1)
    setX(player, 100)
    setY(player, 100)
    print("Spiel gestartet!")
}

onUpdate(dt)

Wird jedes Frame aufgerufen. Der Parameter dt ist die Delta-Zeit (Zeit seit dem letzten Frame in Sekunden).

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)
    }
}

Die Benutzeroberfläche (UI) wird ebenfalls aus onUpdate(dt) gezeichnet. Die UI-Koordinaten verwenden eine virtuelle Bildschirmauflösung. Standardmäßig ist dieser UI-Raum 100 x 100, und Sie können ihn mit setUIResolutionX() und setUIResolutionY() ändern. Schriftgröße, Schriftfarbe und Elementfarbe können auf temporäre Stapel pro Frame geschoben werden, während Sie die aktuelle UI aufbauen.

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("PAUSED", 6, 6)
    uiPopFontColor()
    uiPopFontSize()

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

    musicOn = uiToggle("MUSIK", musicOn, 6, 20, 22, 6)
    uiPopFontColor()
    uiPopFontSize()

    volume = uiSlider("LAUTSTÄRKE", volume, 0, 10, 6, 28, 24, 6)
    uiPopElementColor()
}

onCollision(objA, objB)

Wird aufgerufen, wenn zwei Objekte kollidieren. objA ist immer entweder ein dynamisches oder ein Triggerobjekt (siehe Kollisionssystem für Details).

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

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

end()

Wird aufgerufen, wenn das Spiel beendet wird.

func end() {
    print("Danke fürs Spielen!")
}