【发布时间】:2011-05-03 04:41:32
【问题描述】:
我正在编写代码来移动浏览器游戏中的角色。我设法获得了它必须在水平和垂直方向上每秒移动的像素。
pxsecx 是每秒必须水平移动的像素数 pxsecy 相同但垂直
基本上应该将它们 += 到当前的水平和垂直位置。
我需要循环每秒不断重复,直到元素位置遇到新位置(newx)。
这是我目前为止的:
<body onmousedown="showCoords(event)">
<script type="text/javascript">
function showCoords(evt){
oldx = parseInt(document.getElementById("character").style.left);
oldy = parseInt(document.getElementById("character").style.top);
width = parseInt(document.getElementById("character").style.width);
height = parseInt(document.getElementById("character").style.height);
newx = evt.pageX - width/2;
newy = evt.pageY - height/2;
disx = newx - oldx;
disy = newy - oldy;
diag = parseInt(Math.sqrt(disx*disx + disy*disy));
speed = 50;
secs = diag/speed;
pxsecx = disx/secs;
pxsecy = disy/secs;
while(document.getElementById("character").style.left<newx)
{
document.getElementById("character").style.left += pxsecx;
document.getElementById("character").style.top += pxsecy;
}
}
</script>
一切正常,直到我不知道该怎么做才能让它每一秒都正常工作。我在这里测试:http://chusmix.com/game/movechar.php
如何让它每秒重复一次以使其正常工作?
谢谢
【问题讨论】:
标签: javascript