[Share] ExplosionParticle演示程序 – 使用进化版的CCParticleSystem

这个演示程序是参加今年cocoachina的特效大赛的作品。内容是粒子系统爆炸特效。

cocos2d的粒子类CCParticleSystem对于粒子在生存周期内属性的控制存在一些局限性,因此我对源码做了一些小改动。演示程序主要包括了下面的内容:

1. 扩展的CCParticleSystem, CCParticleSystemQuad
这个是通过修改源码实现的,本想不懂源码,使用RUNTIME来实现的,但是貌似不太可行,暂时就先放下了。主要的新功能有:
  . 支持X,Y方向的单独缩放,在rotation后也不会出现问题
. 支持在update期间有选择性的动态控制单个粒子的某个属性。
目前支持的粒子属性修改协议:
-(void) updateParticleSize:(tCCParticle *)p elapsed:(float)e dt:(float)dt;
-(void) updateParticleScale:(tCCParticle *)p elapsed:(float)e dt:(float)dt;
-(void) updateParticleSpeed:(tCCParticle *)p elapsed:(float)e dt:(float)dt;
-(void) updateParticleAngle:(tCCParticle *)p elapsed:(float)e dt:(float)dt;
-(void) updateParticleRotation:(tCCParticle *)p elapsed:(float)e dt:(float)dt;
-(void) updateParticleRadialAccel:(tCCParticle *)p elapsed:(float)e dt:(float)dt;
-(void) updateParticleColor:(tCCParticle *)p elapsed:(float)elapse dt:(float)dt;
-(void) updateParticleTangentialAccel:(tCCParticle *)p elapsed:(float)e dt:(float)dt;
-(void) updateParticleRidus:(tCCParticle *)p elapsed:(float)e dt:(float)dt;
-(void) updateParticleDegreesPerSecond:(tCCParticle *)p elapsed:(float)e dt:(float)dt;
 . 支持cocos2d-iphone-1.1-beta2b中的动画粒子功能(这个是我从1.1里合到2.1里来的)
. 新增两个宏,用于控制粒子的旋转和角度
kCCParticleStartSpinEqualToEndSpin
kCCParticleSpinEqualToAngle

2. CCSlidingMenuLayer
自己写的一个可以滑动隐藏/显示的菜单层

3. CCFrameSprite
自己写的一个简单的矩形Sprite

4. ShatteredSprite
之前在我的博客也介绍过的,一个实现了碎效果的Sprite,这个貌似是作者的升级版

5. CCRemoveAndCleanupAction
一个简单的action,淘来的 ,配合ShatteredSprite用的

6. CCShake
这个好像也是我介绍过的,一个抖动Action,用来做震屏效果以外的好O(∩_∩)O~

7. BParticleManager
这个是为了优化淘来的,一个实现很简单但是有效的重用emitter的管理类

8. CCMath.h 一些初等函数公式的宏
一些初等函数的宏,推荐各位可以在grapgh里面折腾折腾,熟悉熟悉曲线的特性。在控制粒子属性的时候很有用。

9. 各种爆炸效果元素的粒子类
其实上面的都和比赛无关,这些才是重点,各种爆炸相关的粒子类。(因为比赛要求是爆炸效果,所以我把其他一些无关的粒子特效去除了)

10. CCParticleEffectGenerator
  通过组合基础的粒子效果再加以调整,搭配出的一些爆炸效果

通过动态的修改每个例子的指定属性,配合以合适的数学函数,只要手感好,可以做出非常棒的粒子效果 ^_^

To Download Page…

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
If you feel all the stuffs in this site helped you a lot and you can get a game I made 🙂

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆