IPhone and Cocos2d Sprites/Layers

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!

Answers


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


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


Need Your Help

Using fileupload control inside Ajax Modal popup extender

c# asp.net

I have a GridView control which displays columns Name, Comments, Image. When I click on an image I need to open a modal popup extender which will be assigned to a panel that contains a textbox,

how to automate a flex application?

flex flex4 flex3 automated-tests qtp

I have a Flex Application that needs to be automated using tools like HP's QuickTest Pro (QTP) or something. However, QTP requires that you write some custom code if you wish to automate some home-...