![]() |
Физика для шутеров - сразу не бить.
Так вот. Насколько я понял, обрабатывать столкновения стандартными средствами блитца можно через коллизион, и через энтити пик. Так вот, как бы реализовать лучше реализовать следующее: есть один меш, вроде как карта, и есть объект - сфера. Как сделать, чтобы сфера поднималась по лестницам (высота ступенек, например, 0.2), прыгала, но не карабкалась по стенам.
|
Re: Физика для шутеров - сразу не бить.
Лестница - очень просто!
Просто поверх лестницы ставишь наклонную плоскость (невидимую) и свера будет по ней ехать, как будто ты идёшь по лестнице. |
Re: Физика для шутеров - сразу не бить.
Цитата:
|
Re: Физика для шутеров - сразу не бить.
Вложений: 2
есть. Применять силу игрока не вперед, а по наклону плоскости, ну то есть правильно поставить вектор силы. У тебя ведь игрок идет вперед так - moveentity player, 0, 0, 1 ?. Так нужно его развернуть по наклону плоскости, тогда не будет теряться сила. НО это очень муторно... А вот держи пример хождения по лестнице:
|
Re: Физика для шутеров - сразу не бить.
Развернуть? Тоесть наклонить под угол лестници?
И чё получится? Получится что наш юзер будет стоять под углом 45 градусов. Помоему люди так по лестницам не ходят. Насчёт изменения скорости, так люди вверх идут медленне чем прямо. (нагрузка больше) |
Re: Физика для шутеров - сразу не бить.
Да, но можно предположить что у него там шутер, в котором десантник по лестницам бегает )
Конечно поворачивать на 45 не стоит. По теории надо вектор притяжения чела надо сделать перпендикулярно плоскости лестницы(это чтобы не скатывался) |
Re: Физика для шутеров - сразу не бить.
Всем спасибо! Только вот я про все эти Pick не могу понять, как они действуют, и как их применять.
|
Re: Физика для шутеров - сразу не бить.
Если захочеш сделать вертикальном положении лестницу попробуй такой
код if EntityCollided(Player,TypeLestnica)<>0 then TranslateEntity Player,0,6,0 Но там маленький недостато есть! Это не дороботаный код! |
Re: Физика для шутеров - сразу не бить.
необязательно поворачивать сам меш игрока.
достаточно повернуть вектор притяжения. |
Re: Физика для шутеров - сразу не бить.
Попробуй так (чтоб игрок не замедлялся когда подымается)
Сначала надо проверить, если игрок движется вверх, то установить гравитацию в нуль, если вниз - в минус. Проверка проста - замеряем координаты игрока до UpdateWorld() и после. Код:
Global yv1#,yv2#,yvd# Код:
;устанавливаем притяжение в нуль если yvd>0 Код:
yv2=EntityY(player) значение gravity# подбирается самостоятельно, оно должно быть отрицательным. Угол, при котором игрок уже не сможет взобраться на подьем, зависит от нее и от скорости игрока по X и Z. bst# определяет скорость падения игрока. |
Re: Физика для шутеров - сразу не бить.
Цитата:
И совсем не обязательно что-либо менять в гравитации, пусть себе притягивает. Нужно просто вообразить себе как вы сами подымаетесь по лестнице, так и сделать. Я вот например когда подымаюсь по ступенькам заношу ногу над ней и далее двигаюсь вперед, то есть можно сделать так: Код:
if лестница=1 and moveplayer=1 then |
Re: Физика для шутеров - сразу не бить.
Это я про ровные поверхности писал, чтоб можно было подыматься на подьемы в 45 градусов и более без замедления.
Зато если игрок падает, то ускорение свободного падения само собой получается. |
Часовой пояс GMT +4, время: 18:57. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot