Rocket Through
cocos2d-x by Example Beginner's Guide 第5章 Rocket Through
你将学到:
1.怎么加载和设定一个粒子系统。
2.如何在CCNode中,画出图元(primitives)如,线,圆等。
3.如何使用cocos2d-x中提供的一些关于向量运算的数学方法。
什么是粒子?
粒子(或者粒子系统),是向游戏添加特效的一种方式。一般而言,就是通过使用大量的细小的精灵纹理(粒子),执行一系列的动作和变换来实现的。
你可以利用粒子系统来创建诸如,烟雾,爆炸,火焰,雷电,雨,雪,等特效。
创建粒子系统
所有的粒子的属性都需要通过xml文件来描述。
1.让我们到GameLayer.cpp中看看。
2.游戏通过调用来createGameScreen()进行初始化,已经存在的createGameScreen(),又调用了createParticles()和createStarGrid(),同样这两个方法也已经实现了。
现在就让我们到createParticles()里看一看。
3.在GameLayer.cpp中找到createParticles()方法,添加如下代码
_jet = CCParticleSystemQuad::create("jet.plist");
_jet->setSourcePosition(ccp(-_rocket->getRadius() * 0.8F, 0));
_jet->setAngle(180);
_jet->stopSystem();
this->addChild(_jet);
jet.plist文件是ParticleDesigner导出的数据,描述着_jet粒子系统的属性。关于 plist格式详见 plist维基百科
_jet粒子系统与_rocket相关联,_jet是_rocket(火箭)的尾巴。使用setAngle(180)和setSourcePosition()让_jet与火箭吻合。
其他的粒子系统创建和使用方式,与此大致相同,在这里就不进行介绍了。
所有的粒子系统都不能添加到CCSpriteBatchNode中,而是作为子结点添加到GameLayer中。
当每个粒子系统创建的时候,我们一定要调用stopSystem(),要不然将他们添加到节点时他们就会飞快地运动起来了。