Keep your place in this quest

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

あなたのスクリプトは、エンジンが自動的に呼び出すこれらの特別な関数を定義できます:

start()

ゲームが始まるときに一度呼ばれます。初期化に使用してください。

func start() {
    setScene(level1)
    setX(player, 100)
    setY(player, 100)
    print("ゲームスタート!")
}

onUpdate(dt)

毎フレーム呼ばれます。dtパラメータはデルタ時間(前のフレームからの時間、秒単位)です。

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

UIもonUpdate(dt)から描画されます。UI座標は仮想スクリーンスペース解像度を使用します。デフォルトでは、そのUIスペースは100 x 100です。setUIResolutionX()setUIResolutionY()で変更できます。フォントサイズ、フォントカラー、要素の色は、現在のUIを構築する際に一時的なフレームごとのスタックに押し込むことができます。

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("一時停止中", 6, 6)
    uiPopFontColor()
    uiPopFontSize()

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

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

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

onCollision(objA, objB)

2つのオブジェクトが衝突したときに呼ばれます。objAは常にダイナミックまたはトリガーオブジェクトです(詳細は衝突システムを参照してください)。

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

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

end()

ゲームが終了するときに呼ばれます。

func end() {
    print("プレイしてくれてありがとう!")
}