cocos2dx 粒子系统理解

1、粒子系统的原理:

在引擎中存在一个粒子池,存放着待激活的粒子,发射器每次从粒子池中取出一个粒子,然后计算赋予粒子的初始属性(速度、大小、方向、生存时间等)后,将粒子发射出去,粒子被发射出去后,会不断地刷新来修正它的属性,当粒子的生存时间结束后,粒子就会死亡,然后重新被粒子池回收,等待下一次激活。


2、粒子的主要属性:

(a)duration 发射器生命时间,单位为秒,-1表示永久播放

(b)emissionRate 每秒喷发的粒子数目

(c)emitterMode 喷发器模式,有重力模式(GRAVITY)和半径模式(RADIUS)两种

(d)totalParticles 场景中存在的最大粒子数目,往往与emissionRate配合使用

(e)isAutoRemoveOnFinish 粒子结束时是否自动删除


生命属性:

(a)life 粒子的生存时间

(b)lifeVar 粒子生命变化范围


大小属性:

(a)startSize 粒子的初始大小

(b)startSizeVar 粒子初始大小的变化范围

(c)endSize 粒子结束时的大小,-1表示和初始大小一致

(d)endSizeVar 粒子结束大小的变化范围


角度属性:

(a)angle 粒子角度

(b)angleVar 粒子角度变化范围


颜色属性:

(a)startColor 粒子初始颜色

(b)startColorVar 粒子初始颜色变化范围

(c)endColor 粒子结束颜色

(d)endColorVar 粒子结束颜色的变化范围


位置属性:

(a)positionType 粒子位置类型有三种:

自由模式(FREE):相对于屏幕自由,不会随粒子节点移动而移动

相对模式(RELATIVE):相对于绑定的节点静止,粒子发射器会随着节点的移动而移动

和打组模式(GROUPED):相对于发射点,粒子随发射器移动而移动

(b)posVar 发射器位置的变化范围


3、粒子效果的创建方法:

方法一:使用cocos2dx引擎提供的效果

auto snow = ParticleSnow::create();
snow->setTexture(Director::getInstance()->getTextureCache()->addImage("snow.png"));
snow->setPosition(Point(0,400));
this->addChild(snow);

方法二:自定义粒子

auto emitter = ParticleSystemQuad::createWithTotalParticles(50);
emitter->setTexture(Director::getInstance()->getTextureCache()->addImage("snow.png"));
emitter->setDuration(-1);//不断地发射粒子
emitter->setPosition(Point(400,400));
emitter->setEmitterMode(ParticleSystem::Mode::GRAVITY);
emitter->setLife(10);//设置粒子属性
this->addChild(emitter);

方法三:使用plist文件

auto snow = ParticleSystemQuad::create("snow.plist");
snow->setDuration(-1);
snow->setPosition(Point(200,200));
this->addChild(snow);


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值