繁体   English   中英

W3Schools游戏教程麻烦

[英]W3Schools game tutorial trouble

因此,我刚刚开始学习Javascript,我正在关注https://www.w3schools.com/graphics/game_obstacles.asp中的游戏教程。这就是我一直坚持的观点。 如果您在示例中查看代码,他们会添加一个工作障碍,但游戏无法在键盘上运行。 (仅在网站上添加了按钮)我希望能够使用键盘操纵角色并遇到可操作的障碍物,当两者接触时,它将停止游戏。

我将不胜感激。 (我使用的代码在上面链接的示例中)

您将需要比所示示例更多的东西。

这是按键事件的示例参考链接

简短摘录:

“清除” 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)); }); 

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

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

});

进行以下更改:

  • body元素中添加onkeypress事件,即<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; } } 

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

    暂无
    暂无

    声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

     
    粤ICP备18138465号  © 2020-2024 STACKOOM.COM