我在这个问题上需要帮助。我想得到黄色子弹的位置相对于那个人的旋转。有人能帮我吗 ? 我有人的位置和旋转角度(-3,2到3,2)
提前谢谢你
Guy without Rotation
Guy with Rotation(-1,5)
我已经尝试过了:
WorldOrigin:玩家位置
new Bullet(direction, new Vector2(worldOrigin.X - 10, worldOrigin.Y + 30),rotation)
要设置枪支末端的子弹,但是当我旋转我的播放器时,子弹仍然向右,而不是例如向左看时向左看。
我试图设置我画到玩家纹理的枪的原点,但那并没有起作用:(
解决方案:
现在我只是在枪上画子弹。我使用了播放器的旋转并添加了30。然后我画了一个半径为50和角度为PlayerRotation + 30的子弹。
public Bullet(Vector2 target, Vector2 pos, float rotation)
{
this.target = target;
this.pos = pos;
this.rotation = rotation;
Vector2 newPos = new Vector2();
newPos.X = pos.X + (float)(50 * Math.Cos(DegreeToRadian(RadianToDegree(rotation) + 30)));
newPos.Y = pos.Y + (float)(50 * Math.Sin(DegreeToRadian(RadianToDegree(rotation) + 30)));
this.pos = newPos;
}
答案 0 :(得分:0)
现在我只是在枪上画下子弹。我使用了播放器的旋转并添加了30。然后我画了一个半径为50和角度为PlayerRotation + 30的子弹。
public Bullet(Vector2 target, Vector2 pos, float rotation)
{
this.target = target;
this.pos = pos;
this.rotation = rotation;
Vector2 newPos = new Vector2();
newPos.X = pos.X + (float)(50 * Math.Cos(DegreeToRadian(RadianToDegree(rotation) + 30)));
newPos.Y = pos.Y + (float)(50 * Math.Sin(DegreeToRadian(RadianToDegree(rotation) + 30)));
this.pos = newPos;
}