Обнаружение столкновений


Автор Сообщение


Группа: Участники
Сообщений: 3
Добавлено: 27-04-2009 15:54
Народ как в Xtream3d сделать так чтобы при столкновении 1объект не проходил через другой

З.Ы.: или покажите на примере X3D vehicle Please!!!

Кстати Большое спасиба Сайту и всему народу что здесь сидит и не только!!!!

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 27-04-2009 18:57
Проще всего использовать DCE - движок обнаружения столкновений, встроенный в Xtreme3D, очень удобный
и легкий в освоении. Все рассчеты производятся автоматически, нам только остается любоваться результатом.

1. Создаем менеджер DCE:

dce=DceManagerCreate();
DceManagerSetManualStep(dce,1);
DceManagerSetMovementScale(dce,2);

2. Создадим два объекта, один статичный (куб), другой динамичный (сфера).
Статичных объектов DCE можно создать несколько.

cube=CubeCreate(10,10,10,global.scene);
ObjectSetPosition(cube,0,0,-30);
DceStaticSetManager(cube,dce);
DceStaticSetActive(cube,true);
DceStaticSetSize(cube,10,10,10);
DceStaticSetShape(cube,1);
DceStaticSetSolid(cube,1);

sphere=SphereCreate(5,8,8,global.scene);
DceSetManager(sphere,dce);
DceSetUseGravity(sphere,0);
DceSetActive(sphere,true);
DceSetSize(sphere,5,5,5);
DceSetSolid(sphere,1);
DceSetSlideOrBounce(sphere,0);
ObjectSetPosition(sphere,0,5,0);
DceSetFriction(sphere,1.5);

2. Теперь можно двигать сферу:

if keyboard_check(vk_up) DceApplyAcceleration(sphere,15,0,0);

3. После этого необходимо обновить состояние DCE:

DceManagerStep(dce,0.1);

Есть и пример на эту тему:
Ссылка


Группа: Участники
Сообщений: 3
Добавлено: 28-04-2009 13:40
Спасибо Большое!!!!


Группа: Участники
Сообщений: 3
Добавлено: 29-04-2009 11:56
Как я понял статичный объект это здания и стены и т.д, а динамичный это самперсонаж. Когда обновляю состояние ДЦЕ выходят ошибки. долго мучался так и ничего не получилось. Теперь к вам народ у меня 3 вопроса(1 из которых просьба):

1. на сайте есть пример X3D vehicle Я по нему создал демку (скачал с инета модель небольшого города и авто (т.к. нет знаний по 3д максу да исамого макса нет поэтому пока с учебником сижу)) ДЦЕ на нем как Gecko писал работать не хочет может кто нибудьть переделает этот пример и зальет мне на почту:iceman1991@inbox.ru ЗАРАНЕЕ СПАСИБА!!!

2. На сайте есть программка вернее уроки по этой программке 3d world studio, так вот программа сохраняет все в " фаил *.3dw
Xtreame етот формат не поддерживает (даже через FreeformCreate)
Может или я тупой в хлам или чего не допонимаю объясните плиз!!! может конвертер какой есть?

3.некоторые файлы в 3дс формате не "обращают внимание" на смену позиции как ето исправить?

Большое СПС Зарание всем кто поможет!!!

Big Boss
Группа: Администраторы
Сообщений: 719
Добавлено: 29-04-2009 18:08
1. Меня вот что поражает: ты просил объяснить, как обнаружить столкновение двух объектов, я объяснил. Ни о какой карте речи не было, так что DCE тут не виноват. Если ты любитель "копипастить" код безо всякой попытки понять, как он работает, то лучше сначала попиши что-нибудь попроще. Если нет - объясняй конкретно, что надо. Мне крайне трудно помогать, если я даже не осведомлен, что именно нужно - столкновение куба с шариком или автомобиля с картой уровня.
В общем, я не собираюсь ничего переделывать и перезаливать. Забот и без того хватает. Если хочешь юзать в DCE карту, смотри здесь.

2. Разумеется, не поддерживает. Экспортить надо в более вменяемые форматы, например, B3D. Или - да, ищи конвертер, гугл в помощь.

3. Никогда с этим не сталкивался, объясни подробнее - что за модель, как именно осуществляется смена позиции.

 

Offtop.ru © 2003