Страницы

Поиск по вопросам

вторник, 5 февраля 2019 г.

Формула полета пули в 2d игре

Пишу небольшой 2D шутер. Возникла проблема с просчетом траектории полета пули. если в кратце: персонаж, который стреляет находится в центре экрана ( вид сверху), нам известен угол, на который повернут персонаж, начальная позиция пули так же центр экрана соответственно. Вот как я это пытался сделать:
phy->ownbullets[i].cX += cos(da) * .5 ; phy->ownbullets[i].cY += sin(da) * .5 ;
где .5 - скорость полета, da - угол, но все равно траектория хаотична. В чем может быть проблема?
Запись экрана - http://rgho.st/6HkZk2Tpy


Ответ

Функции sin и cos принимают значения в радианах. Если значения угла в градусах, то необходимо перевести их в радианы (умножить на число Пи и разделить на 180 градусов):
const double pi = 3.14159265358979323846; phy->ownbullets[i].cX += cos(da * pi / 180) * .5 ; phy->ownbullets[i].cY += sin(da * pi / 180) * .5 ;

Комментариев нет:

Отправить комментарий