일부 장면에서는 별이 빛나는 하늘을 만들고 싶습니다. 주된 문제는 모든 화면을 입자로 채우기 위해 시간이 필요하다는 것입니다. 누군가는 나를 처음부터 전체 하늘을 만들고 그 호출 사이에 저장하도록 조언합니다. 다음과 같이 시도했습니다 :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
하지만 입자가 움직이지 않습니다.
귀하의 아이디어는 맞지만, 코코스는 부모로부터 제거 될 때 레이어의 타이머를 중지합니다. 당신이해야 할 일은 스케줄러를 들여다 보면서 타이머를 복원하거나 멈추지 않는 방법을 찾는 것입니다. 당신은 또한 코코스 포럼에서 주위에 물어볼 수 있습니다. – EmilioPelaez