我的对象有一个点x,y这总是随着鼠标在800x600的盒子里拖动它而改变。我的对象也旋转到鼠标设置的角度,它可以是任何360度。我现在的问题是如何从那个角度拍摄射弹,当然也是从XY位置射击。抛射物只需要沿直线行进,但它需要以主要物体的正确角度移动。我有角度,我有XY位置我需要的是使它从适当的角度移过网格的公式。
编辑 - 当前的JSFIDDLE射弹没有以正确的角度射击。 http://jsfiddle.net/vbk4Z/16/
答案 0 :(得分:2)
标准公式为:
xn = x0 + v * t * cos(theta)
yn = y0 + v * t * sin(theta)
(x0, y0)
是原始位置,v
是所需的速度,theta
是角度(以弧度表示),t
是自射弹发射以来的时间
请注意,这使用相对于正x轴测量角度逆时针的经典卡地亚惯例,并且y轴朝上。
如果您正在使用浏览器坐标,并且恰好选择使用轴承(顺时针相对于“向上”/“向北”),那么您需要交换一些标志和触发功能:
xn = x0 + v * t * sin(theta)
yn = y0 - v * t * cos(theta)