Define el gesto y el límite del navegador
Usa Pointer Events cuando una sola vía de entrada para ratón, lápiz y pantalla táctil encaje con la mecánica. Sigue el puntero activo desde pointerdown, durante el movimiento y hasta que se suelte; ignora los demás punteros salvo que el multitoque forme parte del diseño. Configura touch-action en la superficie de juego para conservar el desplazamiento o el gesto de pellizcar y ampliar del navegador cuando los jugadores los necesiten. Aplicar touch-action: none a toda la superficie puede impedir el zoom del navegador.
En una mecánica de arrastre, muestra de inmediato que el objeto está agarrado y actualízalo según la posición del puntero. En una mecánica de toque, decide si un pequeño movimiento cancela la activación y prueba ese umbral en dispositivos táctiles reales. Limita la política de gestos a la superficie de juego en vez de aplicarla a toda la página.
Trata la cancelación como un resultado normal
El navegador puede cancelar un puntero si toma el control de un gesto, si cambia el estado del dispositivo o si la interacción se interrumpe por otro motivo. Al recibir pointercancel, borra el estado de pulsación igual que después de soltar normalmente; de lo contrario, un personaje podría seguir moviéndose o un botón parecería quedarse pulsado. Si el juego captura un puntero, libera esa captura durante la limpieza.
Prueba un toque, un arrastre lento, un gesto que empieza en el borde y un intento de desplazamiento del navegador. Comprueba que cada acción tenga una señal clara y que al salir de la superficie ningún control quede atascado. La guía de Pointer Events de MDN explica el modelo compartido de punteros y el comportamiento de touch-action.
Preguntas sobre controles táctiles para juegos web
¿Debería un juego desactivar todos los gestos táctiles del navegador?
Solo si la superficie de juego necesita controlar esos gestos. Siempre que sea posible, conserva el desplazamiento o el zoom del navegador y limita las reglas de touch-action a la zona que las necesita.
¿Qué debería ocurrir después de pointercancel?
Finaliza la acción del juego en curso y borra el estado de pulsación o de arrastre. La cancelación es un resultado esperado de la entrada, así que la limpieza debe ser tan deliberada como la gestión de pointerup.
Más información
¿Has visto algo desactualizado? Notificar una corrección