|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.11.2011, 11:46 | #1 |
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
столкновения в GLScene
Привет всем! Пишу 3D игру в GLScene. Загружаю 3D объекты, создал земную поверхность, небо. Главная проблема сейчас - как сделать так чтобы нельзя было проходить сквозь всякие объекты и землю?
|
04.11.2011, 17:43 | #2 |
Форумчанин
Регистрация: 23.06.2011
Сообщений: 201
|
Ну скажем делаем таймер, если обект ближе к камере (Определить по x,y) то останавливаемся, имхо
|
04.11.2011, 19:57 | #3 |
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
а можно подробнее как это написать в коде?
|
14.11.2011, 14:13 | #4 |
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
как остановится?
|
14.11.2011, 16:24 | #5 |
Форумчанин
Регистрация: 06.11.2011
Сообщений: 214
|
У твоих объектов (земля, стена и т.п.) должна быть какая то плотность, которая мешает пройти через него.
Пример у стены некая плотность. Когда тот же ящик (или шарик) с ней сталкивается, идет проверка, может ли он пройти сквозь стену.
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL |
16.11.2011, 17:57 | #6 |
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
Какая плотность? Вы о чём?
как сделать так, чтобы нельзя было проходить камерой сквозь другие объекты? Вобщем я сделал так: Привязал к камере куб. То биш куб перемещается вместе с камерой всегда. Он невидим, но мы как бы находимся внутри него. Потом для куба и например дерева создал событие столкновения через CollisionManager. Меня интересует что нужно в нём прописать? В самом событии, чтобы нельзя было проходить сквозь дерево. И ещё! С деревом всё предельно просто, а вот как быть с 3DS объектами? Тоесть событие столкновения фиксируется, А вот как остановить движение камеры? |
17.11.2011, 15:34 | #7 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Ответ в вопросе кроется.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
17.11.2011, 20:48 | #8 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Ну а как вы её двигаете?) Просто при передвижении проверяйте на близость к другим объектам (в простейшем случае), и если не прошло проверку, то не двигайте камеру по направлении к ним. Если охото покруче, вроде бы к GLScene приделан физ. двиг ODE, посмотрите примеры.
Изобретатель велосипедов
|
18.11.2011, 15:56 | #9 | ||
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
Вобщем я реализовал. Но по своему! Но только с одним деревом. Деревья я размножил с помощью ProxyObject. Но никак не могу сделать так, чтобы камера, а точнее куб внутри камеры, реагировал на остальные прокси деревья.
Я создал для прокси объекта событие колизион. Но у меня получается так, что когда я запускаю программу - я нажимаю клавишу 'w' то биш вперёд, а камера удаляется с точностью наоборот, то биш назад. Так же, если нажимаю назад - камера идёт вперёд. Лево право - тоже всё наоборот. Почему так? Ведь изначально, я ни с одним деревом не сталкиваюсь. а в событии OnCollision я прописал следующее: Цитата:
GLCube1 - это куб в котором находится камера. Именно с ним мы проверяем на столкновение дерево и прокси деревья. Цитата:
|
||
18.11.2011, 22:12 | #10 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Ну, попробуйте при столкновении в caption формы писать имя объекта, с которым столкнулись (пронумеровав их, например) и так проверить, верно ли вообще рассчитываются столкновения. Или просто сделать индикатор на каждом кадре: есть коллизия или нет. И если столкновения возникают так где не следует - корректировать код добавления коллизии для объекта. Кстати, показали бы его...
Изобретатель велосипедов
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Оптимизация кода столкновения объектов | Asker13 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 13 | 29.12.2010 16:45 |
Столкновения 3D моделей | Zver1993 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 09.10.2010 13:19 |
столкновения без Delphix | somebody94 | Помощь студентам | 0 | 29.06.2010 12:10 |
создать программу столкновения шаров | execute | Помощь студентам | 4 | 23.10.2009 13:59 |
Расчет столкновения шариков. | belomorinka | Общие вопросы Delphi | 3 | 02.06.2009 18:54 |