Cocos2d-x粒子系统

原创 2014年08月05日 16:16:19

CCparticleSystem类封装实现对粒子的控制与调度,其中操作包括有:

1、产生粒子

2、更新粒子状态

3、回收无效的粒子

CCparticleSystem派生出CCParticleSystemPoint(重力式粒子系统)和CCParticleSystemQuad(放射性粒子系统)

粒子效果有:

CCParticleExplosion (爆炸粒子效果)
CCParticleFireworks (烟花粒子效果)
CCParticleFire (火焰粒子效果)
CCParticleFlower (花束粒子效果)
CCParticleGalaxy (星系粒子效果)
CCParticleMeteor (流星粒子效果)
CCParticleSpiral (漩涡粒子效果)
CCParticleSnow (雪粒子效果)
CCParticleSmoke (烟粒子效果)
CCParticleSun (太阳粒子效果)
CCParticleRain (雨粒子效果)

实例:

1、通过制定纹理图片创建粒子效果

	CCParticleSystem *particle = CCParticleExplosion::create();
	particle->setTexture(CCTextureCache::sharedTextureCache()->addImage("fire.png"));
	particle->setAutoRemoveOnFinish(true);
	this->addChild(particle);

2、根据属性创建放射性粒子系统(无重力)CCParticleSystemQuad

CCParticleSystem *m_emitter;
	m_emitter = new CCParticleSystemQuad();
	m_emitter->initWithTotalParticles(300);
	//设置纹理
	m_emitter->setTexture(CCTextureCache::sharedTextureCache()->addImage("fire.png"));
	m_emitter->setDuration(-1);
	//对齐
	m_emitter->setGravity(CCPointZero);
	//角度
	m_emitter->setAngle(90);
	m_emitter->setAngleVar(360);
	//速度
	m_emitter->setSpeed(160);
	m_emitter->setSpeedVar(20);
	//生命周期
	m_emitter->setLife(4);
	m_emitter->setLifeVar(1);
	//粒子旋转
	m_emitter->setStartSpin(0);
	m_emitter->setStartSizeVar(0);
	m_emitter->setEndSpin(0);
	m_emitter->setEndSpinVar(0);
 	//粒子颜色
	ccColor4F startColor = {0.5f,0.5f,0.5f,0.5f};
	m_emitter->setStartColor(startColor); 
	ccColor4F startColor2 = {0.5f,0.5f,0.5f,1.0f};
	m_emitter->setStartColorVar(startColor2);
	ccColor4F startColor3 =	{0.1f,0.1f,0.1f,0.2f};
	m_emitter->setEndColor(startColor3); 
	ccColor4F startColor4 =	 {0.1f,0.1f,0.1f,0.2f} ;
	m_emitter->setEndColorVar(startColor4); 
    //粒子尺寸
	m_emitter->setStartSize(20.0f);  
	m_emitter->setStartSizeVar(10.0f);   
	m_emitter->setEndSize(32.0f);  
	m_emitter->setEndSizeVar(8.0f);
	//每秒出现粒子数
	m_emitter->setEmissionRate(m_emitter->getTotalParticles()/m_emitter->getLife());  // 每秒产生粒子数 =  粒子总数/存活时间 ;
	//位置
	m_emitter->setPosition(ccp(visibleSize.width/2, visibleSize.height/2));
	this->addChild(m_emitter);
效果:



Part 12:Cocos2d-x开发实战-Cocos中粒子系统

-
  • 1970年01月01日 08:00

Cocos2d-x中自定义粒子系统

除了使用Cocos2d-x的11种内置粒子系统外,我们还可以通过创建ParticleSystemQuad对象,并设置属性实现自定义粒子系统,通过这种方式完全可以实现我们说需要的各种效果的粒子系统。使用...
  • tonny_guan
  • tonny_guan
  • 2014-09-15 09:30:51
  • 6985

cocos2d-x学习笔记(12)--粒子系统 .rar

  • 2012年08月25日 22:50
  • 567KB
  • 下载

Cocos2d-x内置粒子系统

从类图中我们可以看到,Cocos2d-x中有内置的11粒子,这些粒子的属性都是预先定义好的,我们也可以在程序代码中单独修改某些属性,我们在上一节的实例中都已经实现了这些属性的设置。内置粒子系统内置的1...
  • tonny_guan
  • tonny_guan
  • 2014-09-14 08:56:10
  • 4597

Cocos2d-x中2.x和3.x的粒子系统的比较

CCParticleBatchNode和ParticleBatchNode 相似的地方: 继承图: 两个类都继承自Node(v2.x中的CCNode,PS:官网又弄反了)和Texture...
  • huang_hws
  • huang_hws
  • 2014-01-20 10:58:02
  • 6708

cocos粒子效果

  • 2014年07月22日 11:50
  • 26KB
  • 下载

粒子系统实现与用户交互

  • 2012年12月14日 11:10
  • 1.25MB
  • 下载

cocos2d-x粒子系统

一、粒子系统简介: 粒子系统最早出现在80年代,主要用于解决由大量按一定规则运动(变化)的微小物质在计算机上的生成和显示问题。Particle System的应用非常广泛,大的可以模拟原子弹爆炸,星云...
  • u011414997
  • u011414997
  • 2015-10-14 22:45:50
  • 246

cocos2d-x 粒子系统

第一种方法:自定义 [cpp]  //建立一个粒子系统   CCParticleSystem* pParticleSystem=new CCParticleSystemQuad();...
  • zltianhen
  • zltianhen
  • 2013-04-20 09:30:36
  • 1663

cocos2d-x 粒子系统

第一种方法:自定义 [cpp]  //建立一个粒子系统   CCParticleSystem* pParticleSystem=new CCParticleSystemQuad(...
  • taoyong123
  • taoyong123
  • 2014-07-23 10:32:43
  • 220
收藏助手
不良信息举报
您举报文章:Cocos2d-x粒子系统
举报原因:
原因补充:

(最多只允许输入30个字)