Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Столкновение персонажа со стеной

Столкновение персонажа со стеной

Поделиться
SkarwingПользовательwww19 апр. 201722:58#0
Подскажите, как работает столкновение персонажа с препятствиями, так, чтобы при столкновении он двигался вдоль стены, особенно интересны моменты с углами. Пытался гуглить, но ничего подходящего не нашел.
Движение персонажа задается вектором. 

Правка: 19 апр. 2017 23:02

slatazanПостоялецwww20 апр. 20170:52#1
Skarwing
Я не понял, что тебе нужно ...

Допустим, что я знаю правильную (провереную) позицию юнита (одна центральная точка).
Умножаю нормализованый вектор направления, чтобы учесть скорость,
и нахожу примерную точку, куда желает встать юнит, но надо проверить эту точку.
Если все проверки указывают, что точка вменяема, то можно формить новую позицию..
unit_pos = temp_pos;

Сложность в том, что примерную точку temp_pos можно несколько раз выправлять.
Например, если сначала учитывать _ландшафт, то надо поднимать точку по игреку,
чтобы она не проваливалась в землю. А если обновление движения происходит редко,
либо движение слишком быстрое, то возможно, понадобятся промежуточные точки.

Если засекли поднятие из земли, то надо перестроить вектор движения, и заново умножить ...

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

Надо знать детали игры.
Надо придумывать игру, чтобы не было сложностей.
Надо пользоваться готовыми физ-библами, которые всё решат за тебя.

AMM1AKПостоялецwww20 апр. 20177:22#2
Skarwing
Если произошла коллизия, то нужно выталкивать игрока на величину проникновения в стену по нормали к стене.
MikleМодераторwww20 апр. 201720:23#3
Skarwing
Тут немного расписано:
http://www.gamedev.ru/flame/forum/?id=218277&page=89#m1321

/ Форум / Программирование игр / Физика

2001—2017 © GameDev.ru — Разработка игр