粒子系统的一些概念: http://blog.csdn.net/Leo1981816/article/details/5527202
粒子编辑器ParticleEditor的使用:http://www.cnblogs.com/cocos2d-x/archive/2012/06/17/2552635.html
Ch5中使用粒子系统有3种方式:
- 直接create一个cc.ParticleSystemQuad,然后用代码设置发射器的属性,这种有点麻烦。
- 使用ch5已经定义好的粒子发射器,比如cc.ParticleSnow。create一个出来,然后在根据需要改一下发射器的属性。
- 使用粒子编辑器,导出plist文件,使用cc.ParticleSystem.create(plist_snow)创建发射器。注意,plist文件和用到的图片要发在同一目录,或者将图片转为base64的字符串写到plist的textureImageData属性(参考testcase)
直接上代码:
1. 使用已经定义好的粒子发射器
var AppLayer=cc.Layer.extend({
init:function(){
this._super();
var winSize = cc.Director.getInstance().getWinSize();
var emitter=null;
var texture = cc.TextureCache.getInstance().addImage(img_snow);
emitter = cc.ParticleSnow.create(); //下雪效果的粒子
emitter.setTexture( texture);
emitter.setPosition(winSize.width/2,winSize.height/2); //设置发射器的位置
emitter.setSpeed(150);//设置速度
if(emitter.setShapeType)
emitter.setShapeType(cc.PARTICLE_STAR_SHAPE); //设置形状
this.addChild(emitter);
}
});
效果图:
2. 使用plist文件
var AppLayer=cc.Layer.extend({
init:function(){
this._super();
var winSize = cc.Director.getInstance().getWinSize();
var emitter=null;
var texture = cc.TextureCache.getInstance().addImage(img_snow);
emitter = cc.ParticleSystem.create(plist_snow);
emitter.setStartSize(20);
emitter.setPosition(winSize.width/2,winSize.height/2); //设置发射器的位置
if(emitter.setShapeType)
emitter.setShapeType(cc.PARTICLE_STAR_SHAPE); //设置形状
this.addChild(emitter);
}
});
效果图:
源码下载:微盘