#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 ;
Комментариев нет:
Отправить комментарий