W3Schools游戏教程麻烦

时间:2017-11-24 10:11:52

标签: javascript html

所以我刚刚开始学习Javascript,我正在关注https://www.w3schools.com/graphics/game_obstacles.asp中的游戏教程 这是我被困住的一点。如果您查看示例中的代码,他们会添加一个工作障碍,但游戏无法使用键盘。 (仅限按钮添加到网站) 我希望能够用我的键盘操纵角色,并且有一个工作障碍,这将在两个触摸时停止游戏。

我很感激能从中得到任何帮助。 (我使用的代码在上面链接的示例中)

3 个答案:

答案 0 :(得分:0)

你需要比显示的例子更多一点。

以下是关键按下事件Link

的示例参考

简短摘录:

  

“清除”JavaScript:

<script type="text/javascript">
  function myKeyPress(e){
    var keynum;

    if(window.event) { // IE                    
      keynum = e.keyCode;
    } else if(e.which){ // Netscape/Firefox/Opera                   
      keynum = e.which;
    }

    alert(String.fromCharCode(keynum));
  }
</script>

<form>
  <input type="text" onkeypress="return myKeyPress(event)" />
</form>

您也可以在jquery中解决它

  

JQuery的:

$(document).keypress(function(event){
  alert(String.fromCharCode(event.which)); 
});

答案 1 :(得分:0)

在代码中添加此项以移动块。

window.addEventListener('keydown', function(event) {
console.log(event);
if(event.keyCode === 38){
    console.log(event);
    myGamePiece.speedY -= 1; 
} else if (event.keyCode === 37){
    myGamePiece.speedX = -1; 
} else if (event.keyCode === 39){
    myGamePiece.speedX = 1; 
} else if (event.keyCode === 40){
    myGamePiece.speedY = 1; 
}

});

答案 2 :(得分:0)

进行以下更改:

  • onkeypress元素中添加body个事件,即<body onkeypress="myFunction(event)" onload="startGame()" >
  • myFunction函数定义如下:

    function myFunction(event)
    {
        switch(event.which || event.keyCode)
        {
        case 117: //Up 'U'
            moveup();
            break;
        case 106: //Down 'J'
            movedown();
            break;
        case 104: //Left 'H'
            moveleft();
            break;
        case 107: //Right 'K'
            moveright();
            break;
        }
    }
    

  • 您可以获得完整的工作代码here。您可以复制完整的代码并在本地运行。