【发布时间】:2016-10-28 01:55:11
【问题描述】:
我正在尝试学习 javascript 中的面向对象编程,所以我尝试制作一个简单的游戏。我想做一个会动的角色。 js里面有代码:
function move(event)
{
var k=event.keyCode;
var chr = {
updown : function (){
var y=0;
if (k==38)
{--y;
}else if (k==40)
{++y;}
return y;
},
leftright : function (){
var x=0;
if (k==37)
{--x;
}else if (k==39)
{++x;}
return x;
}
};
chrId.style.top = (chr.updown())+"px";
chrId.style.left = (chr.leftright())+"px";
}
html:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="jumpOPP.css">
<script src="jumpOPP.js"></script>
</head>
<body onkeydown="move(event)">
<img id="chrId" src="TrackingDot.png" >
</body>
</html>
和 CSS:
#chrId {
position: relative;
top: 0px;
left: 0px;
}
当我按住上、下、左、右时,点只会移动一个位置。如何让它一直移动 我拿着一把钥匙。我已经做到了没有 var char 移动。我使用了函数 move(event),然后使用了一个开关,案例 38、37、39 和 40,然后它改变了 style.top,但我无法在一个对象中实现。
是否可以创建一个对象 chr = {objekt motion, life, power...} 然后一个对象 ground = {some code that stops the chr} 和其他交互对象?有人可以为此推荐一个好的教程吗? :) 谢谢
【问题讨论】:
-
函数
move()必须通过 setTimeout 一次又一次地调用自己,因此它将以 60fps 为目标,并且在 keyUp 上,您必须通过标志变量或某些变量来终止move()的重复其他方式(clearTimeout)
标签: javascript 2d-games