2014-09-11 125 views
0

我是新來的,也是新的網頁編碼。所以我試圖讓一個按鈕被按下時移動我的遊戲角色的功能。當按下按鈕時,布爾值將變爲「true」並且字符移動。我正在嘗試以某種方式做到這一點。有人能讓我明白什麼是使這項工作最好的方法嗎?我還需要爲所有其他按鈕(a,s,d,箭頭)執行此操作。當按鈕按下時移動字符/照相機的功能

var wButton = false; 

function newfunction() 


document.querySelector('#keyButtonW').addEventListener('mousedown', function(event) { 
    keyButtonPressed("wButton", true); 
}); 

document.querySelector('#keyButtonW').addEventListener('mouseup', function(event) { 
    keyButtonPressed("wButton", false); 
}); 

document.querySelector('#keyButtonW').addEventListener('mouseleave', function(event) { 
    keyButtonPressed("wButton", false); 
}); 
+0

'keyButtonPressed'函數是什麼樣的? – duncan 2014-09-11 12:59:42

+0

需要更多信息。你想要實現什麼樣的角色/動作?通常,css與gif或png等圖像一起使用。我強烈建議尋找像jQuery這樣的Javascript框架來讓你的生活更輕鬆。除此之外,您的事件偵聽器應該促進按鈕的「真/假」狀態。請參閱@ Hotted24回答瞭解切換鍵的示例。 – fyrye 2014-09-11 12:59:45

+0

是的,很抱歉我不是很擅長解釋這一點,但keyButtonPressed實際上是我需要這個工作的功能。而且我將它製作成平板電腦/手機,所以我需要在屏幕上製作移動按鈕。我正在尋找一個照顧所有按鈕的功能。 – juwss 2014-09-11 13:20:12

回答

0

假設轉換是將您的字符的方法,也許你應該做一個大maskArray:

var keyboard = []; 
function keyDown(e) 
{ 
    var key = event.keyCode || event.which; 
    keyboard[key] = true; 
} 

function keyUp(e) 
{ 
    var key = event.keyCode || event.which; 
    delete keyboard[key]; 
} 

function keyAction() { 
    for (i in keyboard) 
    { 
     if (keyboard[i] == true) 
     { 
      switch(eval(i)) 
      { 
       case 90: //Z 
        character.translateY(-1); 
        break; 
       case 83: //S 
        character.translateY(1); 
        break; 
       case 81: //Q 
        character.translateX(-1); 
        break; 
       case 68: //D 
        character.translateX(1); 
        break; 
      } 
     } 
    } 

    return false; 
} 

document.addEventListener("keydown", keyDown, false); 
document.addEventListener("keyup", keyUp, false); 

簡而言之keyAction()主循環內/渲染循環。

的這個值是不使滯後發生,當你點擊一個按鈕,並與多個按管理幫助=)

編輯

拿到鑰匙的數字,只是把一個控制檯。記錄(key)在keyDown()的末尾。