Я действительно застрял в реализации мира упаковки с Box2D.Я хочу создать игровой объект, появляющийся слева, когда он прячется вправо и наоборот, и то же самое для нисходящего.
Моя идея состоит в том, чтобы использовать объект, содержащий NSArray с 9 элементами для матрицы суперпозиции (этоквантовое состояние, когда объект существует в разных местах одновременно, не так ли?).
Каждый элемент должен содержать тело.Он охватывает все ситуации и имеет более четкую логику для меня.Например, если мой объект не касается краев, он содержит только одно «центральное» тело (4-й элемент).Если он касается правого края, я добавляю «левое деформированное» тело к третьему элементу.
Основная проблема - создание тела без добавления в мир.Сначала я должен просто добавить его в массив, а затем безопасно выполнить добавление вне
world->Step();
Например ... В логике столкновений (псевдокод)
[self.bodies addObjectAtIndex:index] = [self masterBody];
где
-(b2Body*)masterBody;
возвращает шаблон (мастер-копию) для тела объекта.Но я не могу написать этот метод, потому что есть только один
world->CreateBody(&bodyDef);
метод, и я должен использовать его для создания осветителей.
Я могу создать отдельно только определение тела, но полноесоздание (с приспособлениями) не может быть сделано без добавления его в мир.Но добавление в мир msut будет обработано вне физического шага.
Есть идеи?Использовать отдельный мир для хранения тел шаблонов каждого игрового объекта?