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:
| Eigenschaft | Bedeutung |
|---|---|
down | In diesem Frame gedrückt gehalten |
pressed | Gerade in diesem Frame gedrückt (für einen Frame wahr) |
released | Gerade in diesem Frame losgelassen (für einen Frame wahr) |
value | Analogwert (0.0 oder 1.0 für Tasten) |
Gängige Tastennamen: left, right, up, down, space, enter, escape, a–z, 0–9.
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:
| Eigenschaft | Bedeutung |
|---|---|
x, y | Position in Spielkoordinaten |
dx, dy | Bewegung seit dem letzten Frame |
pressure | Berührungsdruck (falls verfügbar) |
down | Wird gerade berührt |
started | Berührung begann in diesem Frame |
ended | Berü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:
x,y— Cursorposition in Spielkoordinatendx,dy— Bewegung seit dem letzten Framewheel— Scrollrad-Deltabuttons.left,buttons.right,buttons.middle— jeweils mitdown,pressed,released
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:
connected— ob ein Gamepad an diesem Index angeschlossen istleft_stick,right_stick— Analogsticks mitxundy(-1.0 bis 1.0)buttons—a,b,x,y, plus Trigger und Bumper, jeweils mitdown,pressed,released,value
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.