В моем коде ниже, который я вызываю в методе обновления, CCPhyscisSprites удаляются, и их тела уничтожаются, когда элементы массива находятся вне экрана. Я поставил CCLOG, чтобы проверить количество массивов, и я всегда получаю 1, когда все спрайты выключены. Хотя я не вижу спрайта, это, скорее всего, все еще вокруг. Что может быть причиной и как я могу ее решить?уничтожает массив CCPhysicsSprites
-(void)ballScheduler {
if (ballArray != NULL) {
for (int i = 0; i < ballArray.count; i++) {
CCLOG(@"ball array count is %d", ballArray.count);
CCPhysicsSprite* ballPhysicsSprite = [ballArray objectAtIndex:i];
b2Vec2 ballForce = b2Vec2(forceX, forceY);
ballPhysicsSprite.b2Body->ApplyForce(ballForce, ballPhysicsSprite.b2Body->GetWorldCenter());
if (ballPhysicsSprite.position.x < -ballPhysicsSprite.contentSize.width/2) {
ballWorld->DestroyBody(ballPhysicsSprite.b2Body);
ballPhysicsSprite.b2Body = NULL;
[ballArray removeObject:ballPhysicsSprite];
[ballBatchNode removeChild:ballPhysicsSprite];
}
}
}
}
Я видел, что вы хотите решить также этот http://stackoverflow.com/questions/38525232/replacing-calayer-and-cabasicanimation-with-skscene-and-skactions, я обновляю свой ответ, пожалуйста, возьмите (я пишу вам здесь, потому что вы не в комментариях или разговорах) –