Eingabe

Pyxen unterstützt Tastatur-, Touch-, Maus- und Gamepad-Eingabe. Alle Eingaben werden über das input-Modul gelesen und einmal pro Frame aktualisiert, bevor update() ausgeführt wird.

Tastatur

Greife auf jede Taste über input.keyboard nach Namen zu:

if input.keyboard.right.down:
    player.x += 2

if input.keyboard.space.pressed:
    jump()

Jede Taste stellt dieselben Eigenschaften bereit:

EigenschaftBedeutung
downIn diesem Frame gedrückt gehalten
pressedGerade in diesem Frame gedrückt (für einen Frame wahr)
releasedGerade in diesem Frame losgelassen (für einen Frame wahr)
valueAnalogwert (0.0 oder 1.0 für Tasten)

Gängige Tastennamen: left, right, up, down, space, enter, escape, az, 09.

Touch

Auf dem iPad kommt Touch-Eingabe über input.touches — eine Liste aktiver Berührungspunkte:

for touch in input.touches:
    if touch.started:
        spawn_particle(touch.x, touch.y)

Jeder Touch hat:

EigenschaftBedeutung
x, yPosition in Spielkoordinaten
dx, dyBewegung seit dem letzten Frame
pressureBerührungsdruck (falls verfügbar)
downWird gerade berührt
startedBerührung begann in diesem Frame
endedBerührung endete in diesem Frame

Maus

Mauseingabe funktioniert auf Mac und iPad mit angeschlossener Maus oder Trackpad:

if input.mouse.buttons.left.pressed:
    shoot(input.mouse.x, input.mouse.y)

Die Maus stellt bereit:

Gamepads

Pyxen unterstützt bis zu 4 Gamepads. Greife über input.gamepads darauf zu:

pad = input.gamepads[0]
if pad.connected:
    player.x += pad.left_stick.x * 2
    if pad.buttons.a.pressed:
        jump()

Jedes Gamepad hat:

Für mehrere Eingabequellen designen

Ein Pyxen-Spiel kann auf dem iPad mit Touch, auf dem iPad mit Tastatur oder auf dem Mac mit Maus und Tastatur laufen. Ein guter Ansatz ist, mehrere Eingabequellen zu prüfen:

def update():
    dx = 0
    if input.keyboard.right.down:
        dx = 2
    elif input.keyboard.left.down:
        dx = -2

    pad = input.gamepads[0]
    if pad.connected:
        dx = pad.left_stick.x * 2

    player.x += dx

Für die vollständige API, siehe die Eingabe-Referenz.