IPhone и Cocos2d спрайты / слои
-
11-07-2019 - |
Вопрос
Я использую cocos2d-iphone для размещения спрайтов на слое для настройки игрового поля. В определенные моменты игры определенные спрайты должны быть удалены в зависимости от условий игры. Я хотел бы настроить массив указателей Sprite, но у меня есть два вопроса:
Как лучше всего разместить указатели Sprite в массиве? Р>
Как удалить Sprite в cocos2d только с указателем на Sprite? Я знаю, как сделать это из родительского уровня, но это слишком интенсивно во время выполнения для основного игрового цикла.
Заранее спасибо!
Решение
Класс Sprite
наследуется от CocosNode
, поэтому вы должны иметь возможность вызывать spritePointer.parent.remove (spritePointer)
Другие советы
Я понял это. Если кому-то еще интересно, способ сделать это - объявить массив указателей Sprite, например:
Sprite * mySprites[10][10]; // assuming a 10x10 playfield where obstacles get placed
Затем, при настройке ваших спрайтов:
mySprites[0][0] = [Sprite spriteWithFile: @"obstacle.png"];
[myLayer add:mySprites[0][0]];
Чтобы удалить Sprite:
[myLayer remove:mySprites[0][0]];
Существует также [mySprite removeFromParentAndCleanup: YES]
.