我正在用javascript编写一个小游戏。我试图移动一个角色,好像从上面往下看。已经有一段时间了,因为我已经完成了任何基础数学,但是我无法使我的一些定位能够正常工作。我想以给定的角度移动一些步骤。输入由程序根据用户按键和模型中的事件生成。
我有以下代码
var xPos = 0, yPos = 0, angle = 45, distance = 1;
var yDelta = Math.sin(angle * Math.PI / 180) * distance,
xDelta = Math.sqrt(Math.pow(distance, 2) - Math.pow(yDelta, 2));
yPos += yDelta;
xPos += xDelta;
我的测试用例
我看不出我的移动算法有什么问题。据我所知,数学是正确的。我有一个明显的错误吗?或者我可以采取更简单的方法吗?
答案 0 :(得分:1)
尝试将xDelta
计算为
xDelta = Math.cos(angle * Math.PI / 180) * distance;
对于向后,你应该减去(不添加)xDelta和yDelta到位置。