Страницы

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

воскресенье, 5 января 2020 г.

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

#c #разработка_игр #sdl


Пишу небольшой 2D шутер. Возникла проблема с просчетом траектории полета пули. если
в кратце: персонаж, который стреляет находится в центре экрана ( вид сверху), нам известен
угол, на который повернут персонаж, начальная позиция пули так же центр экрана соответственно.
Вот как я это пытался сделать:

phy->ownbullets[i].cX += cos(da) * .5 ;
phy->ownbullets[i].cY += sin(da) * .5 ;


где .5 - скорость полета, da - угол, но все равно траектория хаотична. В чем может
быть проблема?

Запись экрана - http://rgho.st/6HkZk2Tpy
    


Ответы

Ответ 1



Функции 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 ;

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

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