2012-04-03 103 views
1

我忙于在XNA中使用一个自顶向下的射击游戏。现在我有一个小数学问题: 我有一个精灵,一个持有9毫米的人。现在精灵看着鼠标光标。 当我拍摄时,我想在枪管的末端显示一个小小的枪口。但是,旋转角色时,枪管末端的坐标将会改变。XNA Sprite旋转点

我怎样才能得到正确的坐标精灵是枪管结束的时候,例如在桶底是14px的上方玩家的头上?(自上而下) enter image description here

所以basicly我需要知道如何获得与orgin具有一定角度的圆中某个点的坐标。

谢谢!

回答

4
x=orig.x+cos(alpha)*r; 
y=orig.y+sin(alpha)*r; 

其中alpha是x轴和延伸的枪管的直线之间的角度; r是圆的半径(桶的长度)。

取决于坐标系统的方向,或者两个+可能都必须替换为' - '(或者在将alpha的倍数增加到90度(最多270)的情况下进行调整,直到获得它为止对)。

+1

如果枪口闪光是方向性的,你需要将它的原点设置在它的后面中心,并对你的人类精灵应用相同的旋转。 – Murtnowski 2012-04-03 21:12:44

+0

完成了这项工作!谢谢! – Basaa 2012-04-03 21:15:49