Ошибка бурундука iOS SpriteBuilder: вы уже добавили это тело в это пространство

Я очень плохо знаком с cocos2d и chipmunk, но надеюсь, что кто-нибудь сможет помочь мне понять ошибку, которую я получаю.

Немного предыстории:

В игре, которую я делаю, у меня есть 1 "уровень игры", который я перезапускаю для каждого нового "раунда" своей игры, увеличивая счет и сохраняя глобальные переменные в App Delegate (в качестве центрального хранилища). Таким образом, уровень игры сбрасывает все для следующего раунда, но все еще помнит, что игрок прогрессировал в счете и т.д.

Я использую SpriteBuilder (с последним движком Cocos / Chipmunk, который входит в комплект).

В игре есть дорога и машины. Я создаю дорогу и CCPhysicsNode в SpriteBuilder, но затем случайным образом выбираю автомобильные спрайты (также определенные в SpriteBuilder) по имени (например, "car4") и присоединяю их к CCPhysicsNode, когда начинается новый раунд.

Так,

  1. Я заполняю массив (доступных) автомобильных спрайтов:

    carSprites addObject: (CCSprite *) [загрузка CCBReader:[NSString stringWithFormat:@"%@%i", carUnlock.spriteName, i]]];

  2. Затем я случайным образом выбираю один и создаю свой собственный класс (как-то не получалось создать объект Car напрямую с помощью 'CCBReader load'), поэтому мне пришлось немного потанцевать здесь:

    // получить спрайт из Sprite Builder из общего числа доступных CCSprite * carSprite = (CCSprite *) [carSprites objectAtIndex: (int) arc4random_uniform (maxNumberOfCarSprites)];

    // теперь создаем мой пользовательский объект Car из полученного CCSprite Car *car = [[Car alloc] initWithAnotherSprite:carSprite impulseStrength:(CGFloat)arc4random_uniform(MAX_RANDOM_IMPULSE)];

  3. а затем я добавляю его в физическое тело после установки его положения и все...

    [_physicsNode addChild: car];

Теперь это, кажется, работает нормально, то есть нет ошибки или сбоя при выполнении любого из вышеперечисленных.

Но тогда я почти сразу получаю эту ошибку:

Aborting due to Chipmunk error: You have already added this body to this space. You must not add it a second time.
Failed condition: body->space != space
Source:/Users/iarandine/MyCarsGame.spritebuilder/Source/libs/cocos2d-iphone/external/Chipmunk/src/cpSpace.c:443

Я больше не делаю addChild к физике, нигде! Это сводит меня с ума, так как я понятия не имею, что это вызывает?

Если это все еще неясно (что, я надеюсь, не будет), может быть, по крайней мере, вы могли бы объяснить, что пытается сделать это несостоятельное утверждение?

Любые идеи будут наиболее оценены на этом этапе...

Большое спасибо!

0 ответов

Другие вопросы по тегам