CCParticleSystem не отображается в моей сцене iPad
Я пытаюсь использовать систему частиц Cocos2d, чтобы добавить эффекты к существующей сцене, унаследованной от CCScene на моем iPad. Однако, каким-то образом система частиц не добавляется на сцену / бег. Я не могу запустить его после поиска по нескольким сайтам, в том числе и здесь.
-(CCParticleSystem*)createEmitter
{
CCParticleSystem *emitter = [[[CCParticleSystem alloc] initWithTotalParticles:50] autorelease];
[emitter setAutoRemoveOnFinish:YES];
[emitter setEmitterMode:kCCParticleModeRadius];
[emitter setTexture:[[CCTextureCache sharedTextureCache] addImage: @"cloud_small.png"]];
[emitter setStartColor:ccc4f(1, 1, 1, 1)];
[emitter setEndColor:ccc4f(1, 1, 1, 1)];
[emitter setStartRadius:10];
[emitter setEndRadius:250];
[emitter setStartSize:100];
[emitter setEndSize:50];
emitter.life = 1;
emitter.duration = -1;
emitter.position = ccp(0,0);
return emitter;
}
и позвонил с:
[self addChild:[self createEmitter]];
Я работал с классом CCParticleExplosion, в котором мне удалось заставить его работать.
-редактировать-
Я нашел решение, которое дает мне правильный результат. Но, на мой взгляд, это не так, как это задумано.
Я заменил CCParticleSystem на CCParticleFire и теперь работает нормально. Поскольку CCParticleFire является примером частиц, я нахожу это решение "обходным путем".
-(CCParticleFire*)createParticleEffect
{
CCParticleFire *emitter = [[CCParticleFire alloc] initWithTotalParticles:50];
[emitter setEmitterMode:kCCParticleModeRadius];
[emitter setTexture:[[CCTextureCache sharedTextureCache] addImage: @"cloud_small.png"]];
[emitter setStartColor:ccc4f(0.1, 0.1, 0.1, 0.5)];
[emitter setStartColorVar:ccc4f(0.2, 0.2, 0.2, 0.3)];
[emitter setStartRadius:10];
[emitter setStartRadiusVar:20];
[emitter setEndRadius:200];
[emitter setEndRadiusVar:20];
[emitter setStartSize:100];
[emitter setStartSizeVar:30];
[emitter setEndSize:50];
[emitter setEndSizeVar:15];
emitter.angle = 90;
emitter.angleVar = 360;
emitter.life = 1;
emitter.lifeVar = 2;
emitter.duration = -1;
emitter.position = ccp(75,75);
emitter.emissionRate = 10;
[emitter resetSystem];
return emitter;
}
1 ответ
Проверить эту позицию emitter.position = ccp(500,500);
на iPhone эта позиция будет вне экрана, и вы ничего не увидите.