我认为这应该是一个简单的问题,但是由于涉及到很多事情,因此我在实施此方法时遇到了很多麻烦。

我正在尝试将由它们的中心定义的对象围绕除中心之外的定义点旋转以面对鼠标的位置

我在世界空间中定义了点,并在世界空间中找到了鼠标的位置以及每个项目的中心。

请避免给出有关如何朝鼠标旋转或如何围绕某个点旋转的答案-我正在尝试同时做这两个!

最佳答案

如果这是对您问题的合理解释,请从“最后一帧”转到“此帧”,


如果您知道精灵要围绕其旋转的点的位置,并且知道精灵要远离该点的距离,请尝试以下操作:

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()的适当重载中的参数

德拉

10-06 09:55