/ / JavaScript przytrzymywany ekran dotykowy urządzenia przetwarzającego - javascript, Android, iOS, urządzenie, ekran dotykowy

Obsługa ekranu dotykowego JavaScript urządzenia procesowego - javascript, android, ios, device, touchscreen

Tworzę grę na płótnie JavaScript i potrzebujęw celu wykrycia, czy ekran dotykowy na urządzeniu jest przytrzymywany w sposób zbliżony do stuknięcia. Pracuję, aby wykryć dotyk, ale nie mogę wymyślić, jak nadal wywoływać metodę, gdy jest ona przytrzymana.

Dodam więc handlerów wydarzeń

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

Mam dotyk start i dotyk koniec

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();
}
};

Metody po prostu zmieniają moje duszki i pozycję

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

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

Czy jest to coś podobnego do metody klawiatury toPpress i isDown? lub jak utworzyć pętlę while wokół metody? coś takiego.

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

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz użyć setInterval() w Twoim touchStart z processTopLeftTap() w wywołaniu zwrotnym, a następnie zadzwoń clearInterval() na touchEnd.