Objective c 以错误的方式创建许多精灵?
我对指针有一个基本的误解。 我想创建许多精灵,我想让所有的人都知道它们。 我所做的和它所起作用的奇迹是: 我在.h文件中定义: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(
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.
}