Я работаю над игрой в 3D-среде, используя OpenGL. Я внедряю систему обнаружения столкновений с быстрым эллипсоидом для большинства столкновений Объект / Мир, которая прекрасно работает.
Проблема, с которой я сталкиваюсь, — это объединение этой системы с системой обнаружения столкновений объектов и объектов. Реальная проблема, которую я пытаюсь решить на этапе проектирования, заключается в том, чтобы смотреть на объекты, которые потенциально могут остановить или изменить движение другого объекта (скажем, некоторые ящики, которые можно перемещать, но действуют как «стены», когда игрок сталкивается с ними).
Я полагаю, что мне придется сделать что-то похожее на следующее:
Это правильно? Кажется, это будет очень дорого, так как мне придется проверять каждый возможный объект столкновения на каждой итерации проверки.
Еще одна проблема: как насчет объектов, которые толкают другие объекты:
Например, скажем, ящик падает и толкает игрока. Мне нужно будет перемещать ящик до тех пор, пока он не коснется игрока, а затем выполнить весь процесс обнаружения столкновений для игрока, когда он выдвигается до завершения перемещения ящика. Также кажется, что это может стать чрезмерно дорогим, так как толчок может вызвать еще один толчок и так далее.
Любое руководство высоко ценится.
Задача ещё не решена.
Других решений пока нет …