我认为这应该是一个简单的问题,但我在实施这个问题时遇到了很多麻烦,因为涉及的内容很多。
我正在尝试围绕已定义的点 围绕中心 旋转由其中心定义的对象,以面向该位置鼠标
我在世界空间中定义了点,鼠标在世界空间中的位置以及每个项目的中心。
请避免给出如何旋转鼠标或如何围绕某个点旋转的答案 - 我正在尝试两者兼顾!
答案 0 :(得分:2)
如果这是对您的问题的公平解释,请从“最后一帧”旋转到“此帧”,
如果你知道想要精灵旋转的点的位置,并且你知道你想要精灵的那个点的距离,试试这个:
float radius = ?.?f; // distance from pivot point to sprite
Vector2 spritePivot = new Vector2(?, ?); //location of pivot point
Vector2 mouseToPoint = spritePivot - new Vector2(mouseState.X, mouseState.Y);
mouseToPoint.Normalize();
float spriteAngle = MathHelper.Atan2(mouseToPoint.Y, mouseToPoint.X);
mouseToPoint *= radius;
Vector2 spriteLocation = spritePivot + mouseToPoint;
稍后,在绘制精灵时,请使用spriteAngle& spriteLocation作为SpriteBatch.Draw()
的正确重载中的参数的Dra