Показать сообщение отдельно
Старый 12.11.2007, 05:46   #10
dimond
Оператор ЭВМ
 
Регистрация: 14.09.2007
Сообщений: 27
Написано 2 полезных сообщений
(для 5 пользователей)
Re: Физика для шутеров - сразу не бить.

Попробуй так (чтоб игрок не замедлялся когда подымается)
Сначала надо проверить, если игрок движется вверх, то установить гравитацию в нуль, если вниз - в минус.
Проверка проста - замеряем координаты игрока до UpdateWorld() и после.

Global yv1#,yv2#,yvd#
Global bst#=1
Global gravity#=-0.01
Это пишем до UpdateWorld()
;устанавливаем притяжение в нуль если yvd>0
If yvd>(gravity*-1) yvd=(gravity*-1)
yv1=EntityY(player)
MoveEntity Player,0,gravity+yvd,0
Это после UpdateWorld()
yv2=EntityY(player)
yvd=(yv2-yv1)*bst
все значения я взял из своей игрулины, все работает (коллизия игрока с миром - сфера(радиус 1) с полигонами).
значение gravity# подбирается самостоятельно, оно должно быть отрицательным. Угол, при котором игрок уже не сможет взобраться на подьем, зависит от нее и от скорости игрока по X и Z. bst# определяет скорость падения игрока.
(Offline)
 
Ответить с цитированием