2016-08-19 89 views
1

我使用的是開源遊戲,我正在嘗試(用於練習)修改它,以便它可以在Android上運行。問題是:Javascript觸摸事件在遊戲中的句柄

在原始遊戲中,您使用空間來跳躍,而且我需要遊戲對觸發事件做出響應,因此該字符實際上可以跳躍。

遊戲中使用此代碼保持空格鍵的事件跟蹤:

var KEY_CODES = { 
    32: 'space' 
}; 
var KEY_STATUS = {}; 
for (var code in KEY_CODES) { 
    if (KEY_CODES.hasOwnProperty(code)) { 
    KEY_STATUS[KEY_CODES[code]] = false; 
    } 
} 
document.onkeydown = function(e) { 
    var keyCode = (e.keyCode) ? e.keyCode : e.charCode; 
    if (KEY_CODES[keyCode]) { 
    e.preventDefault(); 
    KEY_STATUS[KEY_CODES[keyCode]] = true; 
    } 
}; 
document.onkeyup = function(e) { 
    var keyCode = (e.keyCode) ? e.keyCode : e.charCode; 
    if (KEY_CODES[keyCode]) { 
    e.preventDefault(); 
    KEY_STATUS[KEY_CODES[keyCode]] = false; 
    } 
}; 

// jump higher if the space bar is continually pressed 
if (KEY_STATUS.space && jumpCounter) { 
    player.dy = player.jumpDy; 
} 

那麼,怎樣才能我在一個空格鍵事件將觸碰事件?

預先感謝幫助,我是新來的編碼,我努力學習:)

回答

1

您可以將下面這段代碼添加到您的腳本,來模擬觸摸事件空格鍵事件。

document.addEventListener("touchstart", function(e) { 
    document.onkeydown({ keyCode: 32 }); 
    }); 
    document.addEventListener("touchend", function(e) { 
    document.onkeyup({ keyCode: 32 }); 
    }); 
+0

這似乎並不工作,觸摸不會觸發任何動作 – k0spwn

+0

是touchstart/touchend回調稱爲在某些時候? – fiddler

+0

我看不到任何touchevent動作(但也許我沒有這樣做,因爲我使用Chrome Device mod並使用開發者模式控制檯記錄動作) – k0spwn