2017-05-06 26 views
0

我正在製作一個JavaScript帆布遊戲,並且我需要檢測設備上的觸摸屏是否被扣下來以便輕拍。我有工作去接觸,但我不知道如何在按住時調用方法。正在按下JavaScript過程設備觸摸屏

所以我添加事件handelers

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

我有觸摸開始和觸摸結束

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

方法只需改變我的精靈y位置

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

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

是他們類似於鍵盤方法isPressed和isDown的東西嗎? 或者我將如何創建一個圍繞該方法的while循環? 這樣的事情。

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

回答

1

你可以在回調中你touchStart使用setInterval()processTopLeftTap(),然後調用clearInterval()touchEnd