关闭

cocos2d-x by Example Beginner's Guide 第5章 Rocket Through 之 粒子系统

标签: cocos2d-x粒子plist
889人阅读 评论(0) 收藏 举报
分类:

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(),要不然将他们添加到节点时他们就会飞快地运动起来了。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20952次
    • 积分:564
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:4篇
    • 译文:2篇
    • 评论:0条