Reputation: 6479
I am using cocos2d-iphone to place Sprites onto a Layer to setup a game playfield. At certain points in the game, certain Sprites need to be removed based upon game conditions. What I would like to do is setup an array of Sprite pointers, but I have two questions:
What's the best way to place Sprite pointers in an array?
How does one remove the Sprite in cocos2d with only a pointer to the Sprite? I know how to do it from its parent layer, but that is too runtime intensive for the main game loop.
Thanks in advance!
Upvotes: 2
Views: 8887
Reputation: 6479
I figured it out. If anyone else is interested, the way to do it is to declare an array of Sprite pointers, such as:
Sprite * mySprites[10][10]; // assuming a 10x10 playfield where obstacles get placed
Then, when setting up your Sprites:
mySprites[0][0] = [Sprite spriteWithFile: @"obstacle.png"];
[myLayer add:mySprites[0][0]];
To remove the Sprite:
[myLayer remove:mySprites[0][0]];
Upvotes: 2
Reputation: 119214
The Sprite
class inherits from CocosNode
, so you should be able to call spritePointer.parent.remove(spritePointer)
Upvotes: 3