Sonolus Wiki

09. 粒子效果

在本章中,我们将为音符添加粒子效果。

声明

与之前类似,声明将被使用的粒子效果:

export const particle = defineParticle({
    effects: {
        note: ParticleEffectName.NoteCircularTapCyan,
    },
})
export const particle = defineParticle({
    effects: {
        note: ParticleEffectName.NoteCircularTapCyan,
    },
})

播放

与游玩模式不同的是,游玩模式中每当玩家击打音符时,我们才播放粒子效果;而在观看模式中,我们只在音符被销毁时播放粒子效果。

然而音符也许会因为时间跳转而被销毁,在这种情况下,我们不想播放粒子效果。我们可以检查 time.skip 并提早返回。

export class Note extends Archetype {
    // ...

    terminate() {
        if (time.skip) return

        const layout = Rect.one
            .mul(2 * note.radius)
            .scale(1, -1)
            .translate(0, 1)

        particle.effects.note.spawn(layout, 0.3, false)
    }
}
export class Note extends Archetype {
    // ...

    terminate() {
        if (time.skip) return

        const layout = Rect.one
            .mul(2 * note.radius)
            .scale(1, -1)
            .translate(0, 1)

        particle.effects.note.spawn(layout, 0.3, false)
    }
}