我正在用 HTML5 canvas 制作一个简单的游戏,它涉及驾驶一辆小车。
向上箭头移动汽车,左右箭头引导汽车。
我已经对旋转进行了排序,但现在它需要在按住向上键时根据它所处的角度移动它的 x 和 y 位置。
例子:
角度为0,向上箭头只会影响y坐标。
角度为 45,向上箭头将以相同的速度影响 x 和 y 坐标。
如果角度是 32,我可以使用什么逻辑?
最佳答案
你可以试试这样的东西
velY = Math.cos(angle * Math.PI / 180) * thrust;
velX = Math.sin(angle * Math.PI / 180) * thrust;
x += velX;
y -= velY;
简单的例子,角度在每个循环中递增。
角度 0 向上,就像您在最初的问题中一样。
这里是修改后的 jsfiddle,因此 0 的角度将您移到右边。
velX = Math.cos(angle * Math.PI / 180) * thrust;
velY = Math.sin(angle * Math.PI / 180) * thrust;
x += velX;
y += velY;
要使 0 最初向右移动只需更改为此,
velX = -Math.cos(angle * Math.PI / 180) * thrust;
关于math - 给定一个角度,我如何使用 x 和 y 找到行进线的逻辑? (数学难题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5006749/