У меня есть функция on_key, которая срабатывает, если нажата кнопка 'w' (вперед), 'a' (поворот влево), 'd' (поворот вправо), если нажата 'w', я хочу вычислить новые x, y . У меня есть координаты x, y и градус, в зависимости от того, в каком градусе сейчас находится объект, я хочу вычислить новые координаты, которые идут, например, на один пиксель в этом направлении.

        _ship->x = _ship->speed*cos(_ship->rotation+90)+_ship->x;
        _ship->y = _ship->speed*sin(_ship->rotation+90)+_ship->y;

Это мое решение, которое не работает. примечание: _ship-> вращение + 90, +90, потому что изображение перпендикулярно

Пример: я нажал w и повернул его.

example

0
djkobi97 15 Мар 2019 в 01:06

1 ответ

Лучший ответ

Триггерные функции C ++ cos() и sin() принимают аргументы в радианах, а не в градусах.

Чтобы преобразовать градусы в радианы, умножьте градусы на пи / 180,0.

1
John3136 14 Мар 2019 в 22:12