x9/Scripte/Input ed

Bisher unterstützt die Engine nur Maus und Tastatur, also noch keinen Joystick.

Jede Eingabe muss über Script-Funktionen abgefragt werden (im Gegensatz zu Callback-Systemen). Die Funktionen geben jeweils die Eingaben während des letzten Frames an.

Table of Contents

Tastatur ed

Die Abfrage-Funktionen für die Tastatur sind:

Die Tasten werden dabei durch Konstanten repräsentiert (z.B. KeyA für die A-Taste, KeySpace für die Leertaste).

Beispiel:

void main()

   while true

       // Ego durch Pfeiltasten bewegen
       if GetKey(KeyLeft)
           Ego.pos.x -= 100.0 * Elapsed
       if GetKey(KeyRight)
           Ego.pos.x += 100.0 * Elapsed
       if GetKey(KeyUp)
           Ego.pos.y -= 100.0 * Elapsed
       if GetKey(KeyDown)
           Ego.pos.y += 100.0 * Elapsed
       if GetKeyDown(KeySpace)
           shoot()

       wait_of()

Vorsicht

while true
    if GetKeyDown(KeyAny)
        break

wird nie abbrechen, da ein Tastendruck erst im nächsten Frame von GetKeyDown() erkannt wird. Dazu ist ein wait_of() in der Schleife nötig um überhaupt den Frame abzuschließen und einen neuen zu beginnen.

Maus ed

Die Abfrage-Funktionen für die Tastatur sind:

Die Maus-Position und Bewegung ist in folgenden Variablen gespeichert:

Beispiel:

void main()

    // einen Mauszeiger erstellen
    picture cursor = CreatePicture( v0, 0.1, 0.1, LoadTexture("cursor.jpg"), r01, White )

    while true

        // Mauszeiger bewegen
        cursor.pos = MouseRel

        wait_of()

noch ein Beispiel:

void main()

    Ego.ang = v0

    while true

        // Dragball-Rotation
        if GetButton(0)
            vector d_ang = vector(MouseD.y * 0.003, MouseD.x * 0.003, 0)
            Ego.ang = VecAngAdd(d_ang, Ego.ang)

        wait_of()