[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Panda3D - по русски » Panda3D » Общие вопросы » Двери
Двери
ZegyДата: Вторник, 24.01.2012, 11:59 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: 0
Статус: Offline
Каким образом можно сделать самооткрывающуюся/закрывающуюся дверь как в квэйке?
 
ninthДата: Вторник, 24.01.2012, 17:00 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
По детекту коллизии открывать (можно повесить генерацию события на коллизию и одиночную реакцию на него acceptOnce); ставить таймер; по таймеру закрывать и заново взводить acceptOnce.
Удобно использовать интервалы для плавного открытия/закрытия двери и опять же на окончание интервала вешать нужные события - типа там проиграть звук, взвести событие, генерировать монстра и т.п.
Можно вообще почти весь цикл двери сделать интервалом.
 
serg-kkzДата: Вторник, 24.01.2012, 17:32 | Сообщение # 3
Генерал-лейтенант
Группа: Модераторы
Сообщений: 679
Награды: 3
Репутация: 16
Статус: Offline
Вот пример, пока без интервалов. Но есть проблемка, как сделать чтоб сфера с кубом не толкалась. Пока думаю.
Прикрепления: 6531855.rar(131Kb)


ООП  -  
 
ZegyДата: Вторник, 24.01.2012, 19:39 | Сообщение # 4
Сержант
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: 0
Статус: Offline
Оо!Спасибо огромное, я думал , что наверное анимировать нужно.
 
serg-kkzДата: Вторник, 24.01.2012, 19:47 | Сообщение # 5
Генерал-лейтенант
Группа: Модераторы
Сообщений: 679
Награды: 3
Репутация: 16
Статус: Offline
Quote (Zegy)
Можно использовать CollisionPlane вместо куб

Можно использовать что угодно, но я бы не советовал использовать коллизии. Создание определенного диапазона из координат при входе в которые дверь бы открывалась, бы более выгодно. По крайней мере я так думаю. Вскоре перепишу пример под этот способ. Куб выгодней использовать, в примере что я выше выложил двери закрываются при выходе из зоны куба, а при в ходе открываются. Это сейчас проверить проблемно, так как зачем-то ни отталкиваются, хотя явно на это в коде не указано. Я не пойму почему это происходит.


ООП  -  
 
serg-kkzДата: Среда, 25.01.2012, 16:09 | Сообщение # 6
Генерал-лейтенант
Группа: Модераторы
Сообщений: 679
Награды: 3
Репутация: 16
Статус: Offline
Написал пример двери, выложил тут

ООП  -  
 
ninthДата: Четверг, 26.01.2012, 08:22 | Сообщение # 7
Admin
Группа: Администраторы
Сообщений: 1554
Награды: 5
Репутация: 46
Статус: Offline
Коллизии можно ставить и "прозрачные" т.е. будет срабатывать событие, но толкаться ничего не будет. <Collide> { Polyset descend intangible }

Хотя в варианте с кубом действительно коллизии не обязательны. Вхождение в область куба легко проверить математически.
 
serg-kkzДата: Суббота, 28.01.2012, 14:40 | Сообщение # 8
Генерал-лейтенант
Группа: Модераторы
Сообщений: 679
Награды: 3
Репутация: 16
Статус: Offline
Quote (ninth)
Коллизии можно ставить и "прозрачные" т.е. будет срабатывать событие, но толкаться ничего не будет. <Collide> { Polyset descend intangible }

Да, но как задать это для программно созданых коллайдеров? Или как задать меш для коллизий, не лазить-же каждый раз в модель.


ООП  -  
 
Форум Panda3D - по русски » Panda3D » Общие вопросы » Двери
Страница 1 из 11
Поиск: