Dispositivos de Entrada
Aqu铆 est谩n los dispositivos de entrada disponibles en p5play:
kb
/keyboard
para el tecladomouse
para el rat贸ncontros
/controllers
para los controles de juegostouches
para entradas de pantalla t谩ctil
Todos estos dispositivos de entrada utilizan las mismas funciones simples para obtener el estado de
una entrada: presses
, pressing
y released
.
Los dispositivos de entrada tambi茅n almacenan el estado de todas sus entradas como propiedades. Por
ejemplo, kb.space
almacena cu谩ntos cuadros el usuario ha estado presionando la tecla
espaciadora. Se reinicia cuando el usuario suelta la entrada.
p5play facilita la activaci贸n de la misma acci贸n a trav茅s de diferentes dispositivos de entrada usando l贸gica booleana.
En el mini-ejemplo, el sprite se vuelve verde si presionas la tecla espaciadora o haces clic con el rat贸n.
Teclado
kb
rastrea casi todas las teclas del teclado, incluyendo 'enter', 'backspace' y
'control'.
Nota que la entrada de letras no distingue entre may煤sculas y min煤sculas. Para verificar si un
usuario est谩 presionando shift usa: kb.pressing('shift')
.
Dado que las teclas WASD se usan com煤nmente para controlar el movimiento del personaje del jugador, puedes usar los nombres de direcci贸n 'up', 'down', 'left' y 'right' para detectar las presiones de las teclas WASD y de flechas.
Las teclas de flecha tambi茅n pueden detectarse por separado usando 'arrowUp', 'arrowDown', 'arrowLeft' y 'arrowRight'.
En juegos locales para dos jugadores es com煤n que el segundo jugador use las teclas IJKL para el movimiento. Estas teclas pueden referenciarse usando 'up2', 'down2', 'left2' y 'right2'.
Rat贸n
La entrada por defecto del rat贸n es el bot贸n 'left', un clic con un dedo en trackpads. Tambi茅n puedes usar 'right' (clic con dos dedos) y 'center'.
mouse.x
y mouse.y
almacenan la posici贸n del rat贸n en el mundo, basada en la
posici贸n de la c谩mara.
mouse.canvasPos
almacena la posici贸n absoluta del rat贸n en el lienzo.
mouse.visible
es un booleano que determina si el rat贸n es visible o no.
mouse.cursor
se puede configurar a un estilo de
cursor. El predeterminado es 'default', otras opciones incluyen 'grab', 'move', 'pointer' y
'wait'.
Rat贸n de Sprite
Los sprites con colisionadores f铆sicos tienen su propio objeto de rat贸n para detectar entradas de
rat贸n en el sprite.
Los objetos sprite.mouse
son como el objeto de entrada mouse
, excepto que
tienen funciones adicionales.
hovers
y hovering
detectan cuando el usuario mueve el rat贸n sobre un
sprite.
dragging
detecta cuando el usuario hace clic y mantiene presionado un bot贸n del rat贸n en
el sprite mientras mueve el rat贸n.
Nota que mouse.x
es la posici贸n x del rat贸n en el lienzo y sprite.mouse.x
es la posici贸n x del rat贸n relativa al sprite.
Controles de Juego
El arreglo contros
(tambi茅n conocido como controllers
) contiene un objeto
por cada control de juego conectado detectado por tu navegador web. Cada objeto controlador almacena
los estados de entrada de estos botones:
a
, b
, x
, y
, l
(bot贸n izquierdo),
r
(bot贸n derecho), lt
(gatillo izquierdo), rt
(gatillo
derecho), arriba
, abajo
, izquierda
, derecha
(D-pad), lsb
(bot贸n del stick izquierdo), rsb
(bot贸n del stick derecho),
start
y select
leftStick
y rightStick
representan las posiciones de los sticks an谩logos
como objetos con propiedades x e y. Estos valores var铆an de -1 a 1, siendo 0 la posici贸n central.
Algunos controles tienen gatillos an谩logos, y sus posiciones se almacenan como n煤meros que van de 0 a
1 en leftTrigger
y rightTrigger
.
Al igual que con un arreglo est谩ndar de JavaScript, puedes acceder a los controles conectados por
铆ndice. Por ejemplo, contros[0]
y contros[1]
son el primer y segundo
control. Recuerda verificar si un control existe en el arreglo antes de revisar su entrada.
Para mayor conveniencia, contro
se puede utilizar para intentar verificar los
estados de entrada de contros[0]
y no generar谩 errores si un control a煤n no est谩
conectado.
隆Pru茅balo! Conecta un control de juego y presiona cualquier bot贸n en 茅l para que sea detectado por p5play.
Tacto
Cada interacci贸n con pantalla t谩ctil genera un objeto de toque que se a帽ade al arreglo
touches
.
Cada toque tiene sus propias funciones para detectar estados de entrada de presi贸n y arrastre.
touch.x
y touch.y
almacenan la posici贸n del toque en el mundo, basada en la
posici贸n de la c谩mara.
touch.canvasPos
almacena la posici贸n absoluta del toque en el lienzo.
touch.id
es un n煤mero 煤nico que identifica el toque.
touch.duration
almacena cu谩ntos cuadros el toque ha estado activo.
El cuadro despu茅s de que un toque termina, su objeto de toque se elimina del arreglo
touches
. touches[0]
se mapea al mouse
.
隆En la demostraci贸n de toques, toca la pantalla para crear cajas y arr谩stralas para lanzarlas!