/ / La pantalla táctil del dispositivo de proceso JavaScript se mantiene presionada - javascript, android, ios, dispositivo, pantalla táctil

La pantalla táctil del dispositivo de proceso JavaScript se mantiene presionada: javascript, android, ios, dispositivo, pantalla táctil

Estoy haciendo un juego de lienzo de JavaScript y necesitopara detectar si la pantalla táctil de un dispositivo se mantiene presionada según lo previsto para ser tocada. Lo tengo funcionando para captar un toque, pero no puedo entender cómo seguir llamando a un método mientras se mantiene presionado.

Entonces agrego los manejadores de eventos

function addTouchEventHandlers()
{
screen.canvas.addEventListener( "touchstart", touchStart);
screen.canvas.addEventListener( "touchend", touchEnd );
}

Tengo inicio táctil y final táctil

function touchStart(e) {
if (gameStarted) {
// Prevent players from inadvertently
// dragging the game canvas
e.preventDefault();
}};

function touchEnd(e) {
var x = e.changedTouches[0].pageX;
var y = e.changedTouches[0].pageY;

if (gameStarted) {
if (x > screen.width/2)
{
processRightTap();
}
else if (x < screen.width/2 && y < screen.height/2)
{
processTopLeftTap();   <- I want to keep calling this method when held down
}
else if (x < screen.width/2 && y > screen.height/2)
{
processBottomLeftTap();  <- I want to keep calling this method when held down
}
// Prevent players from double
// tapping to zoom into the canvas
e.preventDefault();
}
};

Los métodos simplemente cambian mis sprites y posición

function processBottomLeftTap() {
ship.y += 4;
}

function processTopLeftTap() {
ship.y -= 4;
}

¿Es algo similar al método de teclado isPressed e isDown? o ¿cómo crearía un ciclo while alrededor del método? algo como esto.

while(The screen is being touched at X position)
{
processTopLeftTap();
}

Respuestas

1 para la respuesta № 1

Podrías usar setInterval() en tus touchStart con processTopLeftTap() en la devolución de llamada, luego llame clearInterval() en touchEnd.