У меня есть простая схема столкновения с прямоугольной черепицей, и она прекрасно работает.Предотвращение туннелирования с помощью этой настройки?
Проблема только в том, что вы начинаете падать с уступа. Ваша скорость достигает точки, где изменение в Y/X каждого кадра достаточно велико, чтобы вы могли закрепить на твердых объектах и сработали.
В основном моя установка выглядит следующим образом:
Начнем с того, позиция игрока имеет свою скорость добавил к нему, так что игрок сейчас находится на месте, он был бы следующий кадр, если нет столкновения не произошло. Список ниже - это только одна функция, checkIntersectTiles (Vector2 maskPos);
- Рассчитать плитки вокруг персонажа для проверки.
- Проход через плитки, в том числе внутри ограждающих плит.
- Проверьте прямоугольник столкновения игрока на каждом из этих плит.
- Если есть пересечение, переместите самую большую оскорбительную ось из плитки, затем установите эту скорость оси на 0.
- Продолжить проверки.
Когда вы зажимаете землю, вы дрожите внутри, так как мой алгоритм пытается переместить вас за пределы плитки, которая наиболее часто встречается с вами.
Мое решение: проверить каждую позицию от позиции игрока до скорости + игрока. Я застрял на этом.
Может ли кто-нибудь дать мне руку?
Попытаться осуществить это, вернется к вам. Благодаря! –
Он работает, работает: 3 –