SFML 试图让精灵跟踪鼠标
SFML trying to get a sprite to track mouse
下面的代码似乎不起作用我得到一个非常奇怪的精灵,它有时会跟踪鼠标但几乎感到无聊并放弃。如果这是错误的地方,需要去数学交流。
它似乎做了一些精灵摆动但不跟随鼠标并且似乎基于角度的事情。 /2 是因为精灵位置在屏幕中央,m_Resolution 是屏幕尺寸,我已尝试将其删除。不知道是不是溢出来了
float angle = (atan2(mousePosition.y - m_Resolution.y/2,
mousePosition.x - m_Resolution.x/2)
* 180.)/ 3.14159;
m_Sprite.setRotation(angle);
我已经尝试了一段时间,我也看到过类似的问题,但我的答案似乎不太匹配。
如果正在编写您的代码,我是这样做的:
float dX = mousePosition.x - sprite.x;//vector, collinear straight line whicn crosses sprite an cursor on X axis;
float dY = mousePosition.y - sprite.y;//same, but to Y axis;
float angle = (atan2(dY, dX)*180)/3.14159;//CALCULATING ANGLE
sprite.setRotation(angle + 90);
下面的代码似乎不起作用我得到一个非常奇怪的精灵,它有时会跟踪鼠标但几乎感到无聊并放弃。如果这是错误的地方,需要去数学交流。
它似乎做了一些精灵摆动但不跟随鼠标并且似乎基于角度的事情。 /2 是因为精灵位置在屏幕中央,m_Resolution 是屏幕尺寸,我已尝试将其删除。不知道是不是溢出来了
float angle = (atan2(mousePosition.y - m_Resolution.y/2,
mousePosition.x - m_Resolution.x/2)
* 180.)/ 3.14159;
m_Sprite.setRotation(angle);
我已经尝试了一段时间,我也看到过类似的问题,但我的答案似乎不太匹配。
如果正在编写您的代码,我是这样做的:
float dX = mousePosition.x - sprite.x;//vector, collinear straight line whicn crosses sprite an cursor on X axis;
float dY = mousePosition.y - sprite.y;//same, but to Y axis;
float angle = (atan2(dY, dX)*180)/3.14159;//CALCULATING ANGLE
sprite.setRotation(angle + 90);