我想爲某些場景創建繁星點點的天空。 主要的問題是它需要一些時間來填充所有的屏幕與粒子。有人建議我在開始時創造整個天空並將它保存在它的呼叫之間。 我試過這樣的:Cocos2d。 CCLayer的一個例子,有很多場景的粒子?
@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會停止該圖層的計時器。您需要做的是查看調度程序並找到一種方法來恢復定時器或確保它們不會停止。你也可以在科科斯論壇上詢問。 – EmilioPelaez