SKEmitterNode重新触发粒子

时间:2017-07-02 01:39:46

标签: objective-c macos sprite-kit skemitternode

在我创作的节奏应用程序中,我为每个正确播放的键设置了一个粒子发射器。

enter image description here

这是触发此操作的代码:

-(void) enableEmitterForNoteValue:(int)noteValue WithPercentage:(double)percentage {
    int index = noteValue - 36;
    SKEmitterNode *emitter = [_emitters objectAtIndex:index];


    emitter.particleColorSequence = nil;
    emitter.particleColorBlendFactor = 1.0;
    if (percentage == kNotePerfectHitPercentage)
        [emitter setParticleColor:[NSColor whiteColor]];
    else if (percentage == kNoteOkayHitPercentage || percentage == kNoteEarlyHitPercentage)
        [emitter setParticleColor:[NSColor yellowColor]];
    else if (percentage == kNoteLateHitPercentage)
        [emitter setParticleColor:[NSColor orangeColor]];

    [emitter resetSimulation];
    [emitter setParticleBirthRate:200];
}

问题:当相同音高的音符(使用相同的键演奏)快速连续发生时,发射的粒子会被重置,因为我称之为resetSimulation:。如果我不打电话给resetSimulation:,那么粒子只会出现一次。有办法解决这个问题吗?以下是快速连续发布的笔记示例。

enter image description here

0 个答案:

没有答案