繁体   English   中英

围绕鼠标点旋转

[英]Rotate Around Point Towards Mouse

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

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

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

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

如果这是对您问题的合理解释,请从“最后一帧”转到“此帧”, 在此处输入图片说明

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

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;

稍后,在绘制精灵时,在适当的SpriteBatch.Draw()重载中将spriteAngle和spriteLocation用作参数。

德拉

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM