Ios 为什么我能';无法从父CCLayer重置我的CCParticleSystemQuad?

Ios 为什么我能';无法从父CCLayer重置我的CCParticleSystemQuad?,ios,cocos2d-iphone,Ios,Cocos2d Iphone,我已经在我的“游戏场景”中添加了一个附加的CCLayer,每当我的角色在屏幕上收集到一定数量的对象时,它就会变得可见([self addChild:\u congreatsScreen]) 在我的游戏场景.h中,我已经声明了我的子层(CClayer*CongreatsScreen),并在我的游戏场景中合成它。我在游戏场景的init方法中分配子CCLayer,因此它在这个实例变量中保存对子层的引用 在我的游戏场景中,我有几个CCParticleSystemQuad实例,调用stopSystem和r

我已经在我的“游戏场景”中添加了一个附加的CCLayer,每当我的角色在屏幕上收集到一定数量的对象时,它就会变得可见(
[self addChild:\u congreatsScreen]

在我的游戏场景.h中,我已经声明了我的子层(
CClayer*CongreatsScreen
),并在我的游戏场景中合成它。我在游戏场景的
init
方法中分配子CCLayer,因此它在这个实例变量中保存对子层的引用

在我的游戏场景中,我有几个
CCParticleSystemQuad
实例,调用
stopSystem
resetSystem
来回放粒子动画非常简单,但是如果我尝试在子层上初始化的
CCParticleSystemQuad
上执行相同的操作,在我从游戏场景中移除孩子并重新添加后,
resetSystem
不起作用。CCLayer的组件从父层的场景中移除后是否会发生问题

我目前没有代码,因此我将尝试编写一些伪代码来说明它是如何完成的:

如何在ChildLayer.m上初始化它:

_sparkling= [CCParticleSystemQuad particleWithFile:@"sparkling.plist"];
然后,在游戏场景的某个地方。m我有:

- (void) showCongrats {
  //pathetic way to create a modal panel
  [self setTouchable = NO];

  [[[self _congratsLayer] _sparkling] resetSystem];
  [self addChild:_congratsLayer];
}
- (void) hideCongrats {
  //let them continue playing
  [self setTouchable = YES];

  [[[self _congratsLayer] _sparkling] stopSystem];
  [self removeChild:_congratsLayer];
}

因此,它在我第一次调用
ShowCongreats
时起作用,参考很好,我可以操纵粒子,但一旦我隐藏层,继续玩游戏并再次显示祝贺面板,它会显示上次调用时粒子的冻结动画,
重置系统
不再起作用。有什么想法吗?

我会在代码中添加一些断点并仔细查看,但如果我不得不猜测,我会说,当您调用removeChild时,您正在丢失init方法中的数据,并且发生了一些奇怪的事情