Sprite Kit Удалить SKSpriteNodes в массиве с помощью метода -Update

У меня есть массив спрайтов в наборе спрайтов, и в моем методе обновления я проверяю, не падают ли эти спрайты за нижнюю часть экрана. Если они это сделают, я удаляю их из своего родителя и удаляю их из их массива. Мне интересно, делают ли они то, как я это делаю, если это лучшая практика? Будет ли это снижать производительность? Если да, то как лучше всего это сделать?

Вот мой код:

 -(void)update:(CFTimeInterval)currentTime {

     // Detect when animals fall off bottom of screen
NSMutableArray *animalsToDiscard = [NSMutableArray array];
for (SKSpriteNode* node in animalsArray) {
    if (node.position.y < -node.size.height) {

        NSLog(@"Remove Animal - Lose Life");
        [node removeFromParent];
        [animalsToDiscard addObject:node];
    }
}
[animalsArray removeObjectsInArray:animalsToDiscard];
}

person Mike Simz    schedule 20.11.2014    source источник


Ответы (1)


Вы должны использовать встроенный физический мир, чтобы помочь решить эту задачу. По сути, вы должны построить «пол» и, если ваше животное соприкоснется с ним, удалить узел животного.

https://stackoverflow.com/a/24195006/2494064

В этой ссылке ваше «животное» будет эквивалентно «пузырю». Код будет работать, если вы сделаете эту замену.

person meisenman    schedule 20.11.2014