Почему это должно быть преобразовано в Int?

0

Я устанавливаю позицию X и Y объекта, а код ниже используется

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

m_fAngleOfShot - это float, setY() принимает float, а getY() возвращает float. Когда этот спрайт изменяется в окне, он либо перемещается вверх (дельта Y становится -1), а слева (треугольник X становится -1), диагональ вверху слева (оба являются -1) или вообще не перемещаются, Кажется, что возвращаемые здесь значения округляются, и я не могу понять, почему. Помогите!

  • 1
    Каков тип аргумента setX() ? Я думаю, что с фрагментом кода, который вы разместили, невозможно сказать, в чем проблема.
  • 0
    Параметр для setX - это число с плавающей точкой.
Теги:
floating-point
sin
cos

1 ответ

1

cos() и sin() между -1 и 1.

Поэтому, как я уверен, вы понимаете, что setX() и setY() могут только перемещаться вверх или вниз на 1 пиксель.

Они также принимают аргумент в радианах -PI к PI.

Является ли ваша переменная m_ fAngleOfShot в градусах или радианах?

  • 0
    Спасибо! Немного сонный!
  • 0
    Просто быть хорошим маленьким эльфом.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню