我想在html 5画布中制作一个“蛇”游戏。但是我有一个问题让蛇能够朝着正确的方向前进。我会假设下面的代码会使蛇在0和180度上水平移动,在90和270度上垂直移动,但这并非如此。我在这里做错了什么? (使用左右箭头导航)。
function move(direction) {
if(direction == left) {
angel = (angel - 5) % 360;
if(angel < 0) angel += 360;
} else if (direction == right) {
angel = (angel + 5) % 360;
}
x = x + Math.floor(Math.cos(angel*0.0174532925)*5);
y = y + Math.floor(Math.sin(angel*0.0174532925)*5);
$("#infoBar").html("Direction: " + direction + " angel: " + angel);
drawPoint(x,y);
}
乘法器当然是度数的辐射。但不知何故,270度不是一条垂直的直线,因为我认为它是。我究竟做错了什么?
似乎过于复杂,如果你只关心向上/向下或向左/向右移动它不需要计算角度。我注意到的另一件事是角度变量正在改变,因为它正在被重新分配给它自己。这是意图吗? – danca
我只打算使用左/右箭头,因为它自己前进。是的,这个x,y应该会改变,因为它是蛇的新头。 – randoms
是的。你能做这样的事情: 开关(方向) 案件遗留:x--;打破; case right:x ++;打破; 上一个案例:y--;打破; case down:y ++;打破; – danca