Пёсий Кот
Мастер
(1837)
12 лет назад
Ну если представить, что игровое поле это матрица с ячейками определенного размера, то ячейка матрицы может содержать в себе к примеру некоторую область - многоугольник, который определяет некоторую поверхность. Определить столкновение с этим многоугольником - точка пересечения двух отрезков: первый - вектор исходящий из координаты объекта имеющий какую-то длину (например приращение по координатам - dx,dy), второй - сегмент многоугольника (ну т. е. цикл по всем сегментам этого полигона) . Для начала можно делать проверку пересечения ограничивающих прямоугольников.. .
Так же ячейка матрицы может содержать маску, которая тоже определяет рельеф. Например черно белый битмап: белый цвет - это пустота, черный - это элемент поверхности. Ну и по координатам определять какая там точка в битмапе, может ли объект продвинуться туда или нет.
Вячеслав
Профи
(744)
12 лет назад
С дельфи не знаком, к сожалению. Могу посоветовать сделать на флеше, хороший вариант для платформенной игры, функции для проверки столкновений присутствуют.
Либо сделайте через матрицу, но увеличьте количество "кубиков" на склоне, больше вычислений получится, зато внешне будет выглядеть ровным.
Это все без анализа препятствий в матрице. Например как просчитатть что герой идет по склону(в матрице склон только угловатый получится, а нужна прямая)?
Возможно вопрос плохо сформулирован.