Форум

Ошибка получения m_ctl.get_sensor_payload() при m_ctl.CT_TRIGGER

06 сентября 2015 08:46 #3655
Приветствую . При изменении возвращаемого значения с 1 на 0 в ManifoldLogicFunction срабатывает метод ManifoldCallback, но он не отдаёт методу m_ctl.get_sensor_payload() свойство coll_obj. Оно просто NULL
В этом примере test_coll_trigger.zip при контакте игрока со стенками или c ghost коллизией в консоль выводится объект, с которым соприкоснулись, но как только отрываешься от него появляется NULL.

Почему я не хочу навешивать сенсор на каждый объект: потому что у меня их очень много будет, и это повлияет на производительность.
Данный функционал нужен, что бы определить когда игрок вошёл в зону и в какой момент он вышел из этой же зоны.

UPD: залил на гит
Буду собирать коллекцию на гите, может получиться не плохой сборник примеров
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
08 сентября 2015 15:50 #3676
Добрый день.

Данный функционал нужен, что бы определить когда игрок вошёл в зону и в какой момент он вышел из этой же зоны.

Ну смотрите, игрок вошел в зону - пришел объект, с которым произошло столкновение. Игрок вышел из зоны, то есть перестал участвовать в физическом контакте, - пришел логический ноль. Когда изменился объект, возвращаемый сенсором (collision_pt.coll_obj), тогда персонаж покинул зону. Я вас правильно понял?

Тут только недостаток в том, если будет ghost объект внутри другого ghost объекта, то сенсор будет возвращать первый объект. Либо внутри ghost объекта будет происходить коллизия со стенкой - аналогичная ситуация.
Разработчик Blend4Web
08 сентября 2015 16:28 #3678
Ответ на сообщение пользователя Семенцов Роман
Тут только недостаток в том, если будет ghost объект внутри другого ghost объекта, то сенсор будет возвращать первый объект. Либо внутри ghost объекта будет происходить коллизия со стенкой - аналогичная ситуация.
А ещё игрок имеет некоторый объём, и тем самым может зацепить несколько ghost…
Я тут заметил что пока происходит взаимодействие с одним объектом, сенсор игнорирует другие взаимодействия. Поэтому тут только вешать несколько слушателей на игрока, слушающих разный collision id.
И тогда этот вопрос уже не актуален Спасибо :)
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.