cocos2d html5 粒子效果,Cocos2d-js粒子系统【原创】

今天在写cocos2d-js的项目遇到一个问题,就是要实现一种效果:火盆里一团火在熊熊燃烧,之前有了解过这一块的知识,这个功能叫做粒子系统,下面先简单介绍下粒子系统:

粒子系统是模拟自然界中的一些粒子的物理运动的效果,如烟雾、下雨、下雪、火、爆炸等,它们的共性是没有固定的形状,没有规则的几何外形,更重要的一点就是它们的外观会随着时间的推移而发生不确定的变化,它们符合物理学中的“测不准原理”。粒子系统发射的时候有两种模式:重力模式和半径模式。重力模式是让粒子围绕一个中心点做远离或接近运动,半径模式是让粒子围绕中心点旋转。

粒子系统分为两种:内置粒子系统和自定义粒子系统。内置的有11种粒子系统:

ParticleExplosion。爆炸粒子效果,属于半径模式。

ParticleFire。火焰粒子效果,属于重力径模式。

ParticleFireworks。烟花粒子效果,属于重力模式。

ParticleFlower。花粒子效果,属于重力模式。

ParticleGalaxy。星系粒子效果,属于半径模式。

ParticleMeteor。流星粒子效果,属于重力模式。

ParticleSpiral。漩涡粒子效果,属于半径模式。

ParticleSnow。雪粒子效果,属于重力模式。

ParticleSmoke。烟粒子效果,属于重力模式。

ParticleSun。太阳粒子效果,属于重力模式。

ParticleRain。雨粒子效果,属于重力模式。

这11种粒子的属性,根据它的发射模式不同,效果不同。

因为项目需求,并且我就自己也觉得很有意思,于是各种查阅资料之后,写了一个火盆里一团火在熊熊燃烧的代码,具体如下:

var DemoFire = cc.Layer.extend({

onEnter:function () {

this._super();

var _emitter = new cc.ParticleFire();

this.addChild(_emitter, 10);

_emitter.x = 100;

_emitter.y = 100;

_emitter.texture = cc.textureCache.addImage(s_fire);//.pvr"];

if (_emitter.setShapeType)

_emitter.setShapeType(cc.ParticleSystem.BALL_SHAPE);

// this.setEmitterPosition();

},

title:function () {

return "ParticleFire";

}

});

实现效果如下图:

image-1-300x230.png

可以发现火苗的样式比较丑,于是我又在原来的基础上做了些修改,并加上了火盆:

var DemoFire = cc.Layer.extend({

onEnter:function () {

this._super();

var size = cc.winSize;

// 火盆

var firepan = new cc.Sprite(res.firepan);

firepan.attr({

x:size.width/2 + 200,

y:100,

scale:0.6

})

this.addChild(firepan);

var fire = new cc.ParticleFire();

fire.texture = cc.textureCache.addImage(res.s_fire);//.pvr"];

if (fire.setShapeType)

fire.setShapeType(cc.ParticleSystem.BALL_SHAPE);

fire.x = 65; // 发射器的位置

fire.y = 50; // 发射器的位置

fire.scaleX = 0.5; // 设置火苗的宽度

fire.scaleY = 0.3; // 火苗的高度

fire.anchorY = 0.5;

fire.anchorY = 0;

firepan.addChild(fire, 10);

},

});

image1-1-300x221.png

这样,火盆里一团火在熊熊燃烧的效果就实现了

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/19060.html

75d087ef9a9fb11dc373caaf33adbf7f.png

微信打赏

支付宝打赏

感谢您对作者erin的打赏,我们会更加努力!    如果您想成为作者,请点我

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值