【发布时间】:2012-06-14 03:22:04
【问题描述】:
我想为一些场景创建一个星空。 主要问题是需要一些时间才能用粒子填充所有屏幕。有人建议我在开始时创建整个天空并在调用之间保存它。 我尝试过这样的事情:
@implementation StarrySky
static StarrySky *_starrySky;
- (id)init
{
if ((self = [super init])) {
NSArray *starsArray = [NSArray arrayWithObjects:@"Stars1.plist", @"Stars2.plist", @"Stars3.plist", nil];
for(NSString *stars in starsArray) {
CCParticleSystemQuad *starsEffect = [CCParticleSystemQuad particleWithFile:stars];
[self addChild:starsEffect z:-2];
}
}
return self;
}
+ (StarrySky *)sharedStarrySky
{
if (!_starrySky) {
_starrySky = [[StarrySky alloc] init];
}
return _starrySky;
}
- (void)dealloc
{
_starrySky = nil;
[super dealloc];
}
@end
但粒子停止移动。
【问题讨论】:
-
您的想法是对的,但是,当图层从其父级中移除时,Cocos 会停止该图层的计时器。您需要做的是查看调度程序并找到一种方法来恢复计时器或确保它们没有停止。也可以在 cocos 论坛上问一问。
标签: iphone ios cocos2d-iphone particles cclayer