如何让 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;
}