首先我们需要理解粒子系统是什么东西?比如说,火焰,它是由一个个的微小的粒子组成。每一个微小的粒子,在一定范围内进行无规则的运动。火源,就是我们粒子发射器所在的位置,通过粒子发射器,进行粒子的创建。
其实,粒子效果不能再游戏中多用,会影响性能。所以这章我也没怎么学。知道怎么用就行了
至于里边的源码,什么什么的,有点复杂。以后要用的时候再深究
OK,这次我们分两部分
1.学会使用Cocos2dx中自带的粒子效果
2.通过粒子编辑器,自定义粒子效果
1.学会使用Cocos2dx中自带的粒子效果
这里,粒子系统的基类是 CCParticleSystem
一般,我们自定义的粒子系统都继承 CCParticleSystemQuad
应为这个类,比基类对我们设置参数要少很多。
其实,每个粒子和粒子发射器,有N多的属性需要我们去设置,具体的,我也记不住,也不认真看,总之,需要时在baidu
下面,我们来看看系统自带的效果,
它都被封装在了CCParticleExamples.h 这个文件中
有很多效果,用法都是一样的,那么我们随便来实现一个试试
#include "HelloWorldScene.h"
USING_NS_CC;
CCScene* HelloWorld::scene()
{
// 'scene' is an autorelease object
CCScene *scene = CCScene::create();
// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
//
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}
CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
//第二种方式:使用自定义粒子效果
CCParticleSystemQuad* pSnow= CCParticleSystemQuad::create("Particle/Snow.plist");
pSnow->setPosition(ccp(visibleSize.width/2,visibleSize.height));
this->addChild(pSnow);
//第一种方式:使用系统自带的粒子效果
CCParticleFlower* pFlower= CCParticleFlower::create();
pFlower->setTexture(CCTextureCache::sharedTextureCache()->addImage("Particle/snow.png"));
pFlower->setPosition(ccp(visibleSize.width/2,visibleSize.height/2));
this->addChild(pFlower);
return true;
}
资源,最后上传,这里先贴图看看效果
这里录制GIF,可能电脑不行,明显有点卡,看FPS
但是,不打开录制软件又没问题。
估计,移植到手机上也会卡的
2.通过粒子编辑器,自定义粒子效果
这里就直接上传,源码和编辑器了,
至于,编辑器的属性,用法什么的,自行百度