加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我的Cocos2d-x学习笔记(二十一)内置粒子系统、使用粒子特效文

发布时间:2020-12-14 21:27:28 所属栏目:百科 来源:网络整理
导读:一、简介 在大自然中,随处可见一些大规模运动的物体,例如下雨时的雨点、下雪时的雪花、爆炸时的火花,甚至旋转的星系、扩散的云雾等。当我们希望在游戏中模拟这些大规模运动的物体时,通常有如下两种方法。 Cocos2d - x中粒子系统由CCParticleSystem类实现

一、简介

在大自然中,随处可见一些大规模运动的物体,例如下雨时的雨点、下雪时的雪花、爆炸时的火花,甚至旋转的星系、扩散的云雾等。当我们希望在游戏中模拟这些大规模运动的物体时,通常有如下两种方法。

Cocos2d - x中粒子系统由CCParticleSystem类实现,CCParticleSystem实现了对粒子的控制与调度。

对粒子的操作包括
产生粒子:也称作粒子发射器。
更新粒子状态:引擎会随时更新粒子的位置、速度及其他状态。
回收无效粒子:当粒子生存周期结束后,被系统回收。

二、内置粒子系统

Cocos2d-x内置11种粒子效果,其类派生关系如下:


setTexture():设置特效贴图。

setAutoRemoveOnFinish(bool):设置自动释放true为自动释放。

(一)爆炸效果:CCParticleExplosion

实例;

	CCParticleExplosion * explosion = CCParticleExplosion::create();
	explosion->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	explosion->setPosition(ccp(200,200));
	addChild(explosion);
(二)火焰效果:CCParticleFire

实例:

	CCParticleFire * fire = CCParticleFire::create();
	fire->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	fire->setPosition(ccp(200,200));
	addChild(fire);
(三)花束效果:CCParticleFlower

实例:

	CCParticleFlower* flower = CCParticleFlower::create();
	flower->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	flower->setPosition(ccp(200,200));
	addChild(flower);

(四)烟花效果:CCParticleFireworks

实例:

	CCParticleFireworks* fireworks = CCParticleFireworks::create();
	fireworks->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	fireworks->setPosition(ccp(200,200));
	addChild(fireworks);

(五)星系效果:CCParticleGalaxy

实例:

	CCParticleGalaxy* galaxy = CCParticleGalaxy::create();
	galaxy->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	galaxy->setPosition(ccp(200,200));
	addChild(galaxy);
(六)流星效果:CCParticleMeteor

实例:

	CCParticleMeteor* meteor = CCParticleMeteor::create();
	meteor->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	meteor->setPosition(ccp(200,200));
	addChild(meteor);
(七)下雨效果:CCParticleRain

实例:

	CCParticleRain* rain = CCParticleRain::create();
	rain->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	rain->setPosition(ccp(200,200));
	addChild(rain);
(八)烟雾效果:CCParticleSmoke

实例:

	CCParticleSmoke* smoke = CCParticleSmoke::create();
	smoke->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	smoke->setPosition(ccp(200,200));
	addChild(smoke);
(九)下雪效果:CCParticleSnow

实例:

	CCParticleSnow* snow = CCParticleSnow::create();
	snow->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	snow->setPosition(ccp(200,200));
	addChild(snow);
(十)漩涡效果:CCParticleSpiral

实例:

	CCParticleSpiral* spiral = CCParticleSpiral::create();
	spiral->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	spiral->setPosition(ccp(200,200));
	addChild(spiral);
(十一)太阳效果:CCParticleSun

实例:

	CCParticleSun* sun = CCParticleSun::create();
	sun->setTexture(CCTextureCache::sharedTextureCache()->addImage("huangjinpao.png"));
	sun->setPosition(ccp(200,200));
	addChild(sun);
三、使用粒子编辑器编辑的粒子效果

实例:

	CCParticleSystemQuad *snow = new CCParticleSystemQuad();
	snow->initWithFile("gas_explode.plist");
	snow->setPosition(ccp(200,200));
	addChild(snow);
plist文件可以通过例子编辑器获得。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读