想請問各位邦友,下面Javascript的作用,兩段都是鍵盤的設定嗎? 謝謝
第一段
var keysDown = {};
addEventListener("keydown", function (e) {
keysDown[e.keyCode] = true;
}, false);
addEventListener("keyup", function (e) {
delete keysDown[e.keyCode];
}, false);
第二段
var update = function (modifier) {
if (38 in keysDown) { // Player holding up
hero.y -= hero.speed * modifier;
}
if (40 in keysDown) { // Player holding down
hero.y += hero.speed * modifier;
}
if (37 in keysDown) { // Player holding left
hero.x -= hero.speed * modifier;
}
if (39 in keysDown) { // Player holding right
hero.x += hero.speed * modifier;
}
第一段是鍵盤事件設定,第二段是每一個frame更新時,hero如何根據user的按鍵而更改位置。
不好意思,那請問一下,第一段為什麼只有設定keydown跟keyup,是指按下按鍵跟放開按鍵嗎?
我可以寄個JS檔請你幫我看一下嗎?大部份我有註解了(只是不知道對不對@@)
其他小小的部分,看不太懂。
...看到泰大這麼認真回答問題...真是有那麼一點...是很大一點...不習慣...
我也是到現在才知道..我這麼有深度....
最近亂很大,突然轉性了
keydown/keyup event.keyCode
Opera MSIE Firefox Safari Chrome Key presse _____________________________________________________
8 8 8 8 8 Backspace
9 9 9 9 9 Tab
13 13 13 13 13 Enter
16 16 16 16 16 Shift
17 17 17 17 17 Ctrl
18 18 18 18 18 Alt
19 19 19 19 19 Pause, Break
20 20 20 20 20 CapsLock
27 27 27 27 27 Esc
32 32 32 32 32 Space
33 33 33 33 33 Page Up
34 34 34 34 34 Page Down
35 35 35 35 35 End
36 36 36 36 36 Home
37 37 37 37 37 Left arrow
38 38 38 38 38 Up arrow
39 39 39 39 39 Right arrow
sinclair107提到:
是指按下按鍵跟放開按鍵嗎?
對
好的,那在請大大幫我看一下這邊的JS,謝謝
第一段
if (
hero.x <= (monster.x + 32)
&& monster.x <= (hero.x + 32)
&& hero.y <= (monster.y + 32)
&& monster.y <= (hero.y + 32)
) {
++monstersCaught;
reset();
}
};
第二段
var render = function () {
if (bgReady) {
ctx.drawImage(bgImage, 0, 0);
}
if (heroReady) {
ctx.drawImage(heroImage, hero.x, hero.y);
}
if (monsterReady) {
ctx.drawImage(monsterImage, monster.x, monster.y);
}
第三段
var main = function () {
var now = Date.now();
var delta = now - then;
update(delta / 1000);
render();
then = now;
};
(1)請在JS專區用新PO發問
(2)要列出你的想法先
OK,謝謝