2017-05-06 5 views
0

Ich mache ein JavaScript-Canvas-Spiel und ich muss erkennen, ob der TouchScreen auf einem Gerät gedrückt wird, als getappt werden. Ich habe es geschafft, eine Berührung aufzunehmen, aber ich kann nicht herausfinden, wie ich eine Methode aufrufen soll, solange sie gedrückt wird.JavaScript Prozessgerät Touchscreen wird gedrückt

So füge ich die Veranstaltung handelers

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

Ich habe Touch Start und berühren Ende

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

Die Methoden einfach meine Sprites y Position ändern

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

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

Ist ihr etwas ähnlich wie die Tastaturmethode isPressed und IsDown? oder wie würde ich eine while-Schleife um die Methode erstellen? so etwas wie das.

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

Antwort

1

Sie könnten setInterval() in Ihrem touchStart mit processTopLeftTap() in den Rückruf verwenden, dann clearInterval() auf touchEnd nennen.

Verwandte Themen