Я устанавливаю позицию X и Y объекта, а код ниже используется
setX(getX()+(cos(m_fAngleOfShot)));
setY(getY()+(sin(m_fAngleOfShot)));
m_fAngleOfShot
- это float, setY()
принимает float, а getY()
возвращает float. Когда этот спрайт изменяется в окне, он либо перемещается вверх (дельта Y становится -1), а слева (треугольник X становится -1), диагональ вверху слева (оба являются -1) или вообще не перемещаются, Кажется, что возвращаемые здесь значения округляются, и я не могу понять, почему. Помогите!
cos()
и sin()
между -1
и 1
.
Поэтому, как я уверен, вы понимаете, что setX()
и setY()
могут только перемещаться вверх или вниз на 1 пиксель.
Они также принимают аргумент в радианах -PI
к PI
.
Является ли ваша переменная m_ fAngleOfShot
в градусах или радианах?
setX()
? Я думаю, что с фрагментом кода, который вы разместили, невозможно сказать, в чем проблема.