Cocos2d通过CGPoint获取Sprite

时间:2011-04-23 03:07:43

标签: iphone c++ objective-c xcode cocos2d-iphone

我使用以下代码初始化对象

CCSprite *gridp = [CCSprite spriteWithFile:@"grid.png" 
                                               rect:CGRectMake(0, 0, 60, 60)];
gridp.position = ccp(x, y);

我的问题是,在我添加对象后,函数返回后,如何删除精灵?我猜测CGPoint会有一个获得,但我没有找到类似的东西。我无法存储对所有对象的引用,因为游戏在运行时会生成几百个这样的对象。

4 个答案:

答案 0 :(得分:1)

删除儿童:

[self removeChild:yourSprite cleanup:YES];

按标记删除

首先,您需要为精灵指定一个标记:

[self addChild:yourSprite z:0 tag:1];

然后,删除它:

[self removeChildByTag:1 cleanup:YES];

和其他人说的一样,你需要编写自己的函数,以便根据它的位置删除精灵。

希望这有帮助,

~~泰特

答案 1 :(得分:0)

除非你编写一个能够做到这一点的函数,否则无法通过该位置获得精灵,因此你需要引用你的精灵......

您必须将精灵添加到节点以显示它们......并且节点始终具有对其所有子节点的引用。您可以遍历children数组以删除要删除的节点。

答案 2 :(得分:0)

此外,如果您将标记指定给Sprite,则可以使用

删除它
  

[self getChildByTag:spriteName]

答案 3 :(得分:0)

要删除你使用的精灵[self removeChild:sprite cleanup:YES];