如何让 Object 的点附加到另一个 Object 相对于它的旋转?
How to get Point of Object attached to a other Object relative to its Rotation?
我需要帮助解决这个问题。我想获得黄色子弹相对于人旋转的位置。有人能帮我吗 ?
我有那个人的位置和旋转角度(-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)
要将子弹设置在枪的末端,但是当我旋转我的播放器时,子弹仍然向右下方,而不是例如当我向左看时向左上方。
我试图将我绘制的原点设置为播放器纹理的枪,但这并没有奏效:(
解法:
现在我只是把子弹对准枪口。我使用了 Player 的旋转并添加了 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;
}
现在我只是把子弹对准枪口。我使用了 Player 的旋转并添加了 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;
}
我需要帮助解决这个问题。我想获得黄色子弹相对于人旋转的位置。有人能帮我吗 ? 我有那个人的位置和旋转角度(-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)
要将子弹设置在枪的末端,但是当我旋转我的播放器时,子弹仍然向右下方,而不是例如当我向左看时向左上方。
我试图将我绘制的原点设置为播放器纹理的枪,但这并没有奏效:(
解法:
现在我只是把子弹对准枪口。我使用了 Player 的旋转并添加了 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;
}
现在我只是把子弹对准枪口。我使用了 Player 的旋转并添加了 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;
}