![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
![]()
Привет всем! Пишу 3D игру в GLScene. Загружаю 3D объекты, создал земную поверхность, небо. Главная проблема сейчас - как сделать так чтобы нельзя было проходить сквозь всякие объекты и землю?
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 23.06.2011
Сообщений: 201
|
![]()
Ну скажем делаем таймер, если обект ближе к камере (Определить по x,y) то останавливаемся, имхо
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
![]()
а можно подробнее как это написать в коде?
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
![]()
как остановится?
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 06.11.2011
Сообщений: 214
|
![]()
У твоих объектов (земля, стена и т.п.) должна быть какая то плотность, которая мешает пройти через него.
Пример у стены некая плотность. Когда тот же ящик (или шарик) с ней сталкивается, идет проверка, может ли он пройти сквозь стену.
Помог, нажми на весы
![]() html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
![]()
Какая плотность? Вы о чём?
как сделать так, чтобы нельзя было проходить камерой сквозь другие объекты? Вобщем я сделал так: Привязал к камере куб. То биш куб перемещается вместе с камерой всегда. Он невидим, но мы как бы находимся внутри него. Потом для куба и например дерева создал событие столкновения через CollisionManager. Меня интересует что нужно в нём прописать? В самом событии, чтобы нельзя было проходить сквозь дерево. И ещё! С деревом всё предельно просто, а вот как быть с 3DS объектами? Тоесть событие столкновения фиксируется, А вот как остановить движение камеры? |
![]() |
![]() |
![]() |
#7 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Ответ в вопросе кроется.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
Ну а как вы её двигаете?) Просто при передвижении проверяйте на близость к другим объектам (в простейшем случае), и если не прошло проверку, то не двигайте камеру по направлении к ним. Если охото покруче, вроде бы к GLScene приделан физ. двиг ODE, посмотрите примеры.
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#9 | ||
Форумчанин
Регистрация: 15.09.2008
Сообщений: 335
|
![]()
Вобщем я реализовал. Но по своему! Но только с одним деревом. Деревья я размножил с помощью ProxyObject. Но никак не могу сделать так, чтобы камера, а точнее куб внутри камеры, реагировал на остальные прокси деревья.
Я создал для прокси объекта событие колизион. Но у меня получается так, что когда я запускаю программу - я нажимаю клавишу 'w' то биш вперёд, а камера удаляется с точностью наоборот, то биш назад. Так же, если нажимаю назад - камера идёт вперёд. Лево право - тоже всё наоборот. Почему так? Ведь изначально, я ни с одним деревом не сталкиваюсь. а в событии OnCollision я прописал следующее: Цитата:
GLCube1 - это куб в котором находится камера. Именно с ним мы проверяем на столкновение дерево и прокси деревья. Цитата:
|
||
![]() |
![]() |
![]() |
#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 |