Hi! I'm working on a casual game with lots of particle systems. One of effects i'm working at is a "dust" - particles smoothly appearing, floating and disappearing anywhere on screen.
Current particle system doesn't allow simultaneous starting and ending zero opacity (particle will be invisible all the time), so i've added new property named timeToFadeIn, ranging from 0 to 1 (relative to timeToLive).
When timeToFadeIn is 0, particle system behaves just like before. Fading in and out are mutually exclusive.
When timeToFadeIn is greater than 0 (0.01 to be honest, avoiding zero division), particle alpha-fades in (from full transparency to starting alpha) during timeToLive * timeToFadeIn, it's color is startingColor and remains the same.
After timeToLive * timeToFadeIn and untill timeToLive particle is performing linear interpolation between starting and finishing opacity and colors (So normal particle behaving now lasts not timeToLive but timeToLive * (1 - timeToFadeIn).
I've posted the patch to cocos2d-iphone issue tracker, it was tested against master tip (rev 299c5a31).