Код работает, но прыжок получается очень резкий. В сочетании с плавным приземлением это смотрится ужасно. Помогите сделать такой же плавный прыжок c замедлением к моменту достижения пика (максимальной точки) прыжка. Заранее спасибо.
Сообщение отредактировал ilgamer - Понедельник, 24 Сентября 2012, 12:35
Так ты бы сделал нормальную физику, помню был вопрос о "траектории полета ядра". Можно сказать, что тут тоже самое + проверка коллизий, и усе. C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Теперь персонаж прыгает на высоту jumpHeight, после чего включается гравитация. Но не удается составить полноценное уравнение которое сделало бы прыжок естественнее (с небольшим замедлением к достижению пика).
собственно , сталкивался с подобным, только не для с, а для с#. Логика проста. При прыжке мы имеем определенную стартовую скорость jumpSpeed. С этой скоростью мы движемся вверх. При отсутствии гравитации мы бы постоянно летели вверх с этой скоростью.
Code
playerY += jumpSpeed
Однако каждую секунду на нас действует сила тяжести, поэтому скорость движения вверх постоянно уменьшается на некоторую переменную gravityPower.
Code
jumpspeed -= gravityPower
Вот и вся магия. :-) Пример. Скорость прыжка = 1. Гравитация 0.2 В первую секунду игрок пролетит 1, во вторую 0.8, в третью 0.6, на пятую секунду его скорость станет равна 0 и он ненадолго зависнет. Далее jumpSpeed опускается ниже 0 и игрок начинает двигаться вниз, сперва на 0.2, потом на 0.4 и т.д. Твоя задача - отрегулировать переменные jumpSpeed и gravityPower так, чтоб прыжок смотрелся реалистично.
Сообщение отредактировал IIyxMASTER - Вторник, 25 Сентября 2012, 07:14
Спасибо за помощь, IIyxMASTER. Думаю, время потраченное на написание новой физики прыжка будет того стоить.
Добавлено (25.09.2012, 10:56) --------------------------------------------- Есть! "Плавненько", "красивенько". Еще раз спасибо, IIyxMASTER. Лови в репу плюс.