C# 旋转父对象会更改子对象的位置

C# 旋转父对象会更改子对象的位置,c#,matrix,graphics,rotation,monogame,C#,Matrix,Graphics,Rotation,Monogame,我有一个问题,我旋转父对象,但子对象似乎只是滑出屏幕。我认为下面的代码(与矩阵乘法有关)有问题,但我不太确定 ObjectMatrix = (Parent != null ? Parent.ObjectMatrix : Matrix.Identity) * Matrix.CreateRotationZ(MathHelper.ToRadians(-RelativeRotation)) * Matrix.CreateScale(RelativeSize.X, RelativeSize.Y, 0) *

我有一个问题,我旋转父对象,但子对象似乎只是滑出屏幕。我认为下面的代码(与矩阵乘法有关)有问题,但我不太确定

ObjectMatrix = (Parent != null ? Parent.ObjectMatrix : Matrix.Identity) * Matrix.CreateRotationZ(MathHelper.ToRadians(-RelativeRotation)) * Matrix.CreateScale(RelativeSize.X, RelativeSize.Y, 0) * Matrix.CreateTranslation(RelativePosition.X, RelativePosition.Y, 0);
另一个问题是,当我旋转父对象时,它会有点结巴,我很确定这是可以解决的,但在编写代码之前,我想先听听一些(可能更好)的解决方案

任何帮助都将不胜感激