Вниз  Физика в коде
Тема закрыта
- 20.05.2012 / 12:28
denigons
  Пользователь

denigons 
Сейчас: Offline
BorderFol, зачем тебе это ;-)
- 20.05.2012 / 12:33
BorderFol
  Пользователь

BorderFol 
Сейчас: Offline
denigons, не могу повернуть в игре оружие за героем(по координатам).
У меня позиция оружия при угле поворота 0 - player.x+16;player.y; но как изменить эту позицию при повороте на х градусов ?
P.S. модернизирую движок в cs2D Portable чтобы добавить новые функции

Изменено BorderFol (20.05 / 12:34) (всего 1 раз)
- 20.05.2012 / 12:46
Freddy
  Пользователь

Freddy 
Сейчас: Offline
BorderFol, разделить расстояние от точки до точки на косинус угла поворота.
- 20.05.2012 / 12:48
BorderFol
  Пользователь

BorderFol 
Сейчас: Offline
Freddy, можешь формулу написать ?
- 20.05.2012 / 12:49
Oak
  Пользователь

Oak 
Сейчас: Offline
BorderFol, это всё линал Матрица поворота в двумерном пространстве
Рекомендую всё-таки понять, что это вообще такое, а формула вот:
x1 = x * cos a -+ y * sin a
y1 = +- x * sin a + y * cos a
Верхний знак при повороте против часовой стрелки, нижний - по часовой

З.Ы. Косинус и синус - довольно-таки медленные функции, поэтому много поворачивать не стоит
Правда, можно составить массив из 90-а констант, думаю, такой точности хватит по горло
__________________
 Эль Презеденте

Изменено Oak (20.05 / 13:14) (всего 4 раза)
- 20.05.2012 / 12:50
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
BorderFol, изучи свойства синуса и косинуса, много интересных вещей для себя откроешь.
__________________
 let live
- 20.05.2012 / 16:22
dzanis
  Пользователь

dzanis 
Сейчас: Offline
TAPAHbl4 (26.04.2012/21:11)
Дайте пример, шоб полегче было. Мне просто прыжок плавный сделать хочетсо :gg:
всё просто,например используем силу прыжка

  1. float jamp_pow = 10;//начальная сила прыжка 10
прыгать нам надо вверх,а это значит что нужно отнимать от оси Y ,а когда прыжок достиг пика высоты то надо прибавлять к оси Y
Значит отнимаем от силы прыжка к примеру 0.5,и когда сила jamp_pow станет отрицательной (например jamp_pow будет -0.5) предмет будет падать :-D

  1. if(jamp_pow == -11)//условие конца прыжка,чтоб предмет не продолжал падать
  2. jamp_pow = 10;
  3. Y -= jamp_pow;
  4. jamp_pow -= 0.5;//после того как     jamp_pow станет отрицательным предмет начинает падать


Изменено dzanis (20.05 / 16:25) (всего 1 раз)
- 20.05.2012 / 17:38
Naik
  Пользователь

Naik 
Сейчас: Offline
Траектория движения тела, брошенного под углом к горизонту. Альфа - угол, V нулевое - начальная скорость.


Прикрепленные файлы:
2012-05-20 17.2(…).jpg (67.21 кб.) Скачано 186 раз
- 20.05.2012 / 17:58
Oak
  Пользователь

Oak 
Сейчас: Offline
Naik,траектория - линия, а то, что ты написал мне даже не особо понятно.
Полёт тела, брошенного под углом можно разбить на два полёта: вертикальный равноускоренный и горизонтальный равномерный прямолинейный.

Соотвественно, для у и х используются соответствующие уравнения

З.Ы. На самом деле ещё есть сила взаимодействия со средой (забыл, как называется :gg: ), поэтому даже по горизонтали не будет равномерного движения, но этим, обычно, можно пренебречь
__________________
 Эль Презеденте
- 20.05.2012 / 18:25
AlexeyW
  Пользователь

AlexeyW 
Сейчас: Offline
Физика. 10 класс. В. А. Касьянов.
Глава 15. Баллистическое движение.
"Криволинейное баллистическое движение тела можно рассматривать как результат сложения двух прямолинейных движений: равномерного движения по оси X и равнопеременного движения по оси Y"
Вот пример кода:
  1. agl = 30/180*3.14;
  2. x = x0+s0*cos(agl)*t;
  3. y = y0+s0*sin(agl)*t-g*sqr(t)/2;
s0 - начальная скорость м/с
x0 и y0 - начальные координаты
agl - угол в радианах, в нашем случае он равен 30 градусам
t - время в секундах
g - ускорение свободно падения, на земле оно равно 9.81 м/с2
sqr - возведение в квадрат

Изменено AlexeyW (20.05 / 18:26) (всего 2 раза)
Наверх  Всего сообщений: 229
Фильтровать сообщения
Поиск по теме
Файлы топика (17)