Тема: [Box2D] Active=false vs Create;
Показать сообщение отдельно
Старый 08.09.2011, 17:01
Seagull вне форума Посмотреть профиль Отправить личное сообщение для Seagull Найти все сообщения от Seagull
  № 3  
Ответить с цитированием
Seagull

Регистрация: Jun 2011
Сообщений: 18
Цитата:
Сообщение от goodguy Посмотреть сообщение
Поэтому неактивным телам лучше задавать тип b2_staticBody, для таких тел физика не спросчитывается.

Что тут понимается под деактивацией? SetActive(false)? или какой-то свой метод?
Свои методы. Стандартные для паттерна "объектный пул". Задача активации - проинициализировать объект, добавить в списки отображения, подписать на таймер, и тп.. Задача Деактивации- всё наоборот. В бокс2д, насколько я вижу из дебаггера, даже неактивное тело лежит в одном списке с всеми остальными. (проверить можно GetNext()-ом). Не знаю нет ли отдельного, внутреннего списка активных для обсчёта внутренних процессов, но допиливать физ движок не очень входит в мои планы неблагодарное это дело, времени кушать много будет. Вот поэтому, лишние 100-200 неактивных тел, держать не хочется... А создавать каждый раз, малость противоречит идее пула.

Кстати, вы не правы. Для статических тел физика считается. Но только с динамическими. Между собой статические не обсчитываются. А вот флаг active=false - судя по рефференсу, и по опыту, отключает рассчёты.

Но это тоже полумера. Вот думал,может кто знает как корректно работать с телами. Возможно, их можно создавать минуя CreateBody, И просто подцеплять в список тел. Может им ещё что- то нужно. Кто-то знает?
__________________
_____
Почему-то перманентно чувствует себя лезущим куда-то не туда занудой. Тяжёлый случай. >.<