5

В cocos2d я в настоящее время есть очень простой эмиттер частиц инициализирована как это:cocos2d - Частицы следуют эмиттер вместо пребывания в месте они были освобождены

turnEmitter = [[CCParticleFlower alloc] init]; 
    turnEmitter.texture = [[CCTextureCache sharedTextureCache] addImage:@"Pocket.png"]; 
    [self addChild:turnEmitter z:1]; 
    turnEmitter.scale = 0.7f; 
    turnEmitter.positionType = kCCPositionTypeFree; 

Он просто добавляется непосредственно в игровой слой.

Этот излучатель следует спрайт вокруг экрана таким образом (происходит в методе обновления):

turnEmitter.position = turnEmblem.position; 

Теперь проблема заключается в том, что хвост частиц оставил позади эмиттера движется с эмиттером, а выпущенные частицы просто оставались в положении, в котором они были выпущены, что дает действительно странный и глупый эффект.

Я хочу, чтобы частицы не следовали за эмиттером вообще после того, как они были порождены, к сожалению, я не смог найти способ сделать это.

Как вы можете видеть из приведенного выше кода, я уже искал вокруг, и нашел людей, которые предлагают изменить свойство объекта positionType, хотя я пробовал все возможности и не решает проблему.

Есть ли у кого-нибудь идеи относительно того, что это может быть?

+0

«который дает действительно странный и глупый глядя эффект» Круто –

+1

Вы находитесь на правильном пути, изменение positionType должно исправить вашу проблему, по крайней мере, один из positionTypes должен. Вы уверены, что попробовали все варианты и протестировали их? – LearnCocos2D

+0

Эй :) Да, я уверен, что пытался использовать все возможные варианты. К сожалению, я не могу попробовать это сейчас, но позже сегодня. Я буду отчитываться с точными свойствами, которые я пробовал тогда :) Спасибо, что нашли время, чтобы помочь! – CodingBeagle

ответ

8

Возможно, вы захотите изменить «emitterMode» на «kCCPositionTypeFree». У меня была аналогичная проблема, когда у меня был эмиттер как ребенок CCNode. CCNode вращался, но частиц и эмиттеров не было. Точно так же это выглядело глупо, потому что иллюзия вращения была разрушена. Мне нужно установить следующие на моем эмиттер:

emitter.emitterMode = kCCPositionTypeRelative; 
emitter.positionType = kCCPositionTypeRelative; 
+1

emittermode здесь нечего делать. Он должен быть установлен либо в режиме гравитации, либо в режиме радиуса. – zeroliu