Entrada
Pyxen soporta entrada de teclado, táctil, ratón y mando. Toda la entrada se lee a través del módulo input y se actualiza una vez por fotograma, antes de que update() se ejecute.
Teclado
Accede a cualquier tecla por nombre en input.keyboard:
if input.keyboard.right.down:
player.x += 2
if input.keyboard.space.pressed:
jump()
Cada tecla expone las mismas propiedades:
| Propiedad | Significado |
|---|---|
down | Mantenida presionada este fotograma |
pressed | Recién presionada este fotograma (verdadero un solo fotograma) |
released | Recién soltada este fotograma (verdadero un solo fotograma) |
value | Valor analógico (0.0 o 1.0 para teclas) |
Nombres de teclas comunes: left, right, up, down, space, enter, escape, a-z, 0-9.
Táctil
En iPad, la entrada táctil llega a través de input.touches — una lista de puntos de toque activos:
for touch in input.touches:
if touch.started:
spawn_particle(touch.x, touch.y)
Cada toque tiene:
| Propiedad | Significado |
|---|---|
x, y | Posición en coordenadas del juego |
dx, dy | Movimiento desde el último fotograma |
pressure | Presión del toque (si está disponible) |
down | Tocando actualmente |
started | El toque comenzó este fotograma |
ended | El toque terminó este fotograma |
Ratón
La entrada de ratón funciona en Mac e iPad con ratón o trackpad conectado:
if input.mouse.buttons.left.pressed:
shoot(input.mouse.x, input.mouse.y)
El ratón expone:
x,y— posición del cursor en coordenadas del juegodx,dy— movimiento desde el último fotogramawheel— delta de la rueda de desplazamientobuttons.left,buttons.right,buttons.middle— cada uno condown,pressed,released
Mandos
Pyxen soporta hasta 4 mandos. Accede a ellos a través de input.gamepads:
pad = input.gamepads[0]
if pad.connected:
player.x += pad.left_stick.x * 2
if pad.buttons.a.pressed:
jump()
Cada mando tiene:
connected— si hay un mando conectado en este índiceleft_stick,right_stick— sticks analógicos conxey(-1.0 a 1.0)buttons—a,b,x,y, más gatillos y bumpers, cada uno condown,pressed,released,value
Diseñar para múltiples entradas
Un juego de Pyxen puede ejecutarse en iPad con táctil, en iPad con teclado, o en Mac con ratón y teclado. Un buen enfoque es comprobar múltiples fuentes de entrada:
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
Para la API completa, ve la referencia de entrada.