我正在用HTML5画布制作一个简单的游戏,它涉及驾驶一辆小汽车.
向上箭头移动汽车,左右箭头操纵它.
我有旋转排序,但现在它需要在按住向上键时根据它所处的角度移动其x和y位置.
例:
角度为0,向上箭头仅影响y坐标.
角度为45,向上箭头将以相同的速度影响x和y坐标.
如果说角度是32,我可以使用什么逻辑?
Lok*_*tar 11
你可以尝试这样的事情
velY = Math.cos(angle * Math.PI / 180) * thrust;
velX = Math.sin(angle * Math.PI / 180) * thrust;
x += velX;
y -= velY;
Run Code Online (Sandbox Code Playgroud)
快速示例,角度只是每个循环递增.
角度0与您在初始问题中的情况相同.
这是修改过的jsfiddle所以角度为0会让你向右移动.
velX = Math.cos(angle * Math.PI / 180) * thrust;
velY = Math.sin(angle * Math.PI / 180) * thrust;
x += velX;
y += velY;
Run Code Online (Sandbox Code Playgroud)
为了使0最初向右转,只需改为此,
velX = -Math.cos(angle * Math.PI / 180) * thrust;
Run Code Online (Sandbox Code Playgroud)