Box2D и упаковочные миры - PullRequest
       16

Box2D и упаковочные миры

0 голосов
/ 24 января 2012

Я действительно застрял в реализации мира упаковки с Box2D.Я хочу создать игровой объект, появляющийся слева, когда он прячется вправо и наоборот, и то же самое для нисходящего.

Моя идея состоит в том, чтобы использовать объект, содержащий NSArray с 9 элементами для матрицы суперпозиции (этоквантовое состояние, когда объект существует в разных местах одновременно, не так ли?).

Каждый элемент должен содержать тело.Он охватывает все ситуации и имеет более четкую логику для меня.Например, если мой объект не касается краев, он содержит только одно «центральное» тело (4-й элемент).Если он касается правого края, я добавляю «левое деформированное» тело к третьему элементу.

Основная проблема - создание тела без добавления в мир.Сначала я должен просто добавить его в массив, а затем безопасно выполнить добавление вне

world->Step();

Например ... В логике столкновений (псевдокод)

[self.bodies addObjectAtIndex:index] = [self masterBody];

где

-(b2Body*)masterBody;

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

world->CreateBody(&bodyDef);

метод, и я должен использовать его для создания осветителей.

Я могу создать отдельно только определение тела, но полноесоздание (с приспособлениями) не может быть сделано без добавления его в мир.Но добавление в мир msut будет обработано вне физического шага.

Есть идеи?Использовать отдельный мир для хранения тел шаблонов каждого игрового объекта?

...