Objective c 以错误的方式创建许多精灵?

Objective c 以错误的方式创建许多精灵?,objective-c,cocos2d-iphone,Objective C,Cocos2d Iphone,我对指针有一个基本的误解。 我想创建许多精灵,我想让所有的人都知道它们。 我所做的和它所起作用的奇迹是: 我在.h文件中定义:CCSprite*brokenBox,这样全班同学都能看到他。 后来,我有了一个函数,创建了他的许多人,并为每个人添加了一个身体 -(void)someF { brokenBox=[CCSprite spriteWithFile:@"brokenBox.png"]; brokenBox.tag=5; brokenBox.position=ccp(

我对指针有一个基本的误解。 我想创建许多精灵,我想让所有的人都知道它们。 我所做的和它所起作用的奇迹是:

我在.h文件中定义:
CCSprite*brokenBox,这样全班同学都能看到他。
后来,我有了一个函数,创建了他的许多人,并为每个人添加了一个身体

-(void)someF
{

    brokenBox=[CCSprite spriteWithFile:@"brokenBox.png"];
    brokenBox.tag=5;
    brokenBox.position=ccp(point.x*relativeX, point.y );
    //now attach abody to him
    ....
    ....
    [self addChild:brokenBox];


}
现在这个函数被多次调用(这里有很多框)。 我不明白的是,一个指针怎么能一次又一次地改变它指向的文件,我怎么能一次又一次地把它作为一个孩子添加进去? 他创造了很多指针吗

什么是正确的工作方式,以便我可以访问所有这些精灵? (现在我要访问它们:
[self-getChildByTag:5];
它们都有相同的标记=5


非常感谢。

每次创建精灵时,brokenBox指针都会更改。因此,在创建完“多个”精灵后,brokenBox会指向您创建的最后一个精灵

getChildByTag只返回它在子列表中遇到的第一个带有您提供的标记的子列表。您可能希望有如下内容:

in.h

以百万计

全球的

@synthesize brokenBoxes = _brokenBoxes;
初始化

解除锁定

[_brokenBoxes release];
清理:

[_brokenBoxes removeAllObjects];
someF:

CCSprite *brokenBox=[CCSprite spriteWithFile:@"brokenBox.png"];
....
....
[brokenBoxes addObject:brokenBox];
[self addChild:brokenBox];
从您的其他类中,使用数组断盒访问您的精灵

for (CCSprite *brokenBox in self.brokenBoxes) {
    // do your stuff.
}
CCSprite *brokenBox=[CCSprite spriteWithFile:@"brokenBox.png"];
....
....
[brokenBoxes addObject:brokenBox];
[self addChild:brokenBox];
for (CCSprite *brokenBox in self.brokenBoxes) {
    // do your stuff.
}