Question

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!

Was it helpful?

Solution

The Sprite class inherits from CocosNode, so you should be able to call spritePointer.parent.remove(spritePointer)

OTHER TIPS

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]];

There's also [mySprite removeFromParentAndCleanup:YES].

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top