为什么会转换为int?

时间:2013-12-22 02:06:19

标签: c++ floating-point sin cos

我正在设置对象的X和Y位置,并使用下面的代码

setX(getX()+(cos(m_fAngleOfShot)));
setY(getY()+(sin(m_fAngleOfShot)));

m_fAngleOfShot是一个浮点数,setY()取浮点数,getY()返回一个浮点数。当这个精灵在窗口中被修改时,它向上移动(delta Y变为-1),向左移动(delta X变为-1),左上角(两者都是-1)或根本不移动。似乎这里返回的值正在向下舍入,我无法弄清楚原因。救命啊!

1 个答案:

答案 0 :(得分:1)

cos()sin()介于-11之间。

所以,我确信您已经意识到,setX()setY()只能向上或向下移动1个像素。

他们还以弧度-PIPI进行争论。

你的m _ fAngleOfShot变量是度数还是弧度?