粒子编辑器的选择

摘要:
别无选择。目前,我们已经在windows上找到了一个名为cocos2d windows粒子编辑器的粒子编辑器。此效果受发射模式、粒子属性等的影响。成组粒子将附加到发射器,并随发射器而变化。请注意,以上两个属性仅影响编辑器中的预览效果,而不影响已保存的。plist文件。编辑器的使用打开编辑器后,首先从“示例”菜单中选择所需的基本配置,然后设置特定属性,最后将其保存为.plist文件供游戏使用。

乎是没得选,目前在windows上就发现了一款粒子编辑器,叫做cocos2d-windows-particle-editor。

cocos2d-windows-particle-editor

这是一个开源项目,你可以从下面的网址获取。
http://code.google.com/p/cocos2d-windows-particle-editor/

编辑器属性

粒子和发射器是粒子系统不可或缺的组成部分。发射器将大量粒子按照一定规律发射出去形成我们希望表现的效果。这个效果受发射方式,粒子属性等的影响。所以,要对它们有一定的了解,使用起来才能得心应手。

下面我们根据实际需要讲解部分属性。

粒子编辑器的选择第2张

1.Mode

现有的发射器分为两种,一种是重力(Gravity)发射器,另一种是放射(状)(Radius)发射器。

发射器的种类决定了它的工作方式。不同种类的发射器根据不同的属性来决定由它发射出的粒子如何运动。可以说,Mode是发射器最重要的基础属性之一。

2.TotalParticles

该属性决定了最多同时存活的粒子数量上限。这是一个峰值,主要目的是用来限制内存等资源的消耗。

3.EmissionRate

粒子的发射速率,即每秒发射的粒子数量。

这里有一个问题,不知道算不算是bug,我给大家描述一下:

CCParticleSystem加载.plist文件时并没有读取这个EmissionRate的值。实际上,它是由粒子数量上限除以粒子生命期算出来的。

1 // emission Rate
2 m_fEmissionRate = m_uTotalParticles / m_fLife;

有点儿说不通对不对。我为什么要在(第一个)粒子的生命期内把所有的粒子都发出去?

这是CCParticleSystem加载.plist文件的问题,临时的解决办法就是,在加载.plist文件后,再手工调用setEmissionRate设置每秒的发射量。

虽说啰嗦了点儿,但比起纯手动设置粒子系统属性要简单的多。

4.Duration

Duration表示发射器执行的时间,单位是秒。如果设置为-1,那就表示发射器持续发射粒子。零是一个有效值,但是设置为零就没有意义了,不是吗?

5.IsAutoRemoveOnFinish

发射完成后,是否删除粒子系统,默认值为False.

这里存在一个已知的bug:

当IsAutoRemoveOnFinish为True并且Duration不为-1时,待粒子效果播放完毕后,粒子系统会自动删除,导致编辑器不可用。

暂时的解决方法

关闭编辑器,然后重新打开。

粒子编辑器的选择第3张

6.PositionType

PositionType有3种取值:
(1)Free(自由)
粒子附属于游戏世界,并且不受发射器的位移影响。
(2)Relative(相对)
粒子附属于游戏世界,但是要跟随发射器移动。
(3)Grouped(打组)
粒子附属于发射器,并且跟随发射器的变化而变化。

7.SourcePositionX, SourcePositionY

这两个值表示发射器的原始坐标。

8.PosVarX, PosVarY

发射器坐标的浮动值。

粒子编辑器的选择第4张

9.Angle

粒子的发射角度。

10.AngleVar

粒子发射角度的浮动值。

粒子编辑器的选择第5张

11.Speed

粒子(初始)速度。

12.SpeedVar

粒子(初始)速度浮动值。

13.GravityX, GravityY

粒子在X轴和Y轴上的加速度。

14.RadialAccel

粒子的径向加速度。

15.RadialAccelVar

粒子的径向加速度浮动值。

16.TangentialAccel

粒子的切向加速度。

17.TangentialAccelVar

粒子的切向加速度浮动值。

粒子编辑器的选择第6张

18.StartRadius

初始半径

19.StartRadiusVar

初始半径浮动值

20.EndRadius

结束半径

21.EndRadiusVar

结束半径浮动值

22.RotatePerSecond

粒子围绕初始点旋转的角速度

23.RotatePerSecondPer

粒子围绕初始点旋转的角速度浮动值

上面讲的都是发射器的属性,下面我们来看看粒子自身的属性。

粒子编辑器的选择第7张

24.Life, LifeVar

粒子的生命值及其浮动值。从创建粒子开始计时,一旦超出了生命期,粒子也就消失了。

粒子编辑器的选择第8张

25.StartSize

粒子的初始大小

26.StartSizeVar

粒子初始大小的浮动值

27.EndSize

粒子的结束大小。若为-1,则表示结束大小与初始大小一致。

28.EndSizeVar

粒子结束大小的浮动值。

粒子编辑器的选择第9张

29.StartColor, EndColor, StartColorVar, EndColorVar这4个属性代表着粒子的初始颜色、结束颜色以及其浮动值。

需要注意的是,在ccColor4F中每个颜色分量以及透明度都是用0.0f到1.0f表示的,而此编辑器使用的是0到255表示的,所以有时可能会产生小小的误差。(笔者以前只学过一点儿OpenGL的皮毛,不太明白OpenGL里那些换算后非整数的颜色分量是如何处理的。)

粒子编辑器的选择第10张

30.TexturePath

纹理贴图的路径,引擎会根据.plist文件的路径以及此属性判断要加载的文件。一般来说,这里要填相对路径。

31.SrcBlendFunc, DestBlendFunc

设置纹理融合的方式,选项比较多,鉴于笔者的OpenGL水平,这里不做深入。

对于一般情况,只需要记住:“我们最常使用的CC_BLEND_SRC和CC_BLEND_DST分别对应GL_ONE和GL_ONE_MINUS_SRC_ALPHA”。

32.IsBlendAdditive

暂时请忽略IsBlendAdditive这个属性吧,cocos2d-x引擎里根本就没读取这个值。

粒子编辑器的选择第11张

33.StartSpin, EndSpin, StartSpinVar, EndSpinVar

粒子的初始自旋角度、结束自旋角度以及其浮动值。设置了这些值,粒子就开始自转了,当然你需要合适的贴图才能看得清楚。

粒子编辑器的选择第12张

34.IsBackgroundMove

设置左侧预览画面的背景是否移动。

35.Scale

设置左侧预览画面的缩放比。左侧的图像实际上是2倍显示的,这里设置成0.5左侧显示的就是原始大小。

注意,上面这两个属性只影响编辑器内的预览效果,不对保存的.plist文件产生影响

编辑器的使用

打开编辑器后,先从Sample菜单下选择需要的基本配置,然后设置具体的属性,最后另存为.plist文件以供游戏使用。

在cocos2d-x中加载.plist文件非常简单。假设我们将知易第七章中敌方炮弹的烟雾效果保存在emitter.plist文件内,将玩家炮弹的火焰效果保存在emitter2.plist文件内,那么在游戏中加载的代码如下:

复制代码
 1 void BulletSprite::bulletInit(void)
 2 {
 3     emitter = new cocos2d::CCParticleSystemQuad();
 4     emitter->initWithFile("emitter.plist");
 5     // 为什么要加下面这一句,参见属性介绍第3条
 6     emitter->setEmissionRate(75.0f);
 7     emitter->stopSystem();
 8     addChild(emitter);
 9 
10     emitter2 = new cocos2d::CCParticleSystemQuad();
11     emitter2->initWithFile("emitter2.plist");
12     emitter2->setEmissionRate(350.0f);
13     emitter2->stopSystem();
14     addChild(emitter2);
15 }
复制代码

好了,今天就说到这里,也不是想得那么难,是不是?

免责声明:文章转载自《粒子编辑器的选择》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇FTP服务器搭建基础工具:Serv-U 14.0.2使用教程微信小程序支付源码,后台服务端代码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SpringMVC类型转换、数据绑定

SpringMVC类型转换、数据绑定详解[附带源码分析] 目录 前言 属性编辑器介绍 重要接口和类介绍 部分类和接口测试 源码分析 编写自定义的属性编辑器 总结 参考资料 前言 SpringMVC是目前主流的Web MVC框架之一。  如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0...

[zz]使用unity制作雨滴涟漪效果

之前看了以前版本的unity3d demo AngryBots ,觉得里面的下雨效果不错,刚好前段时间学习了,写出来跟大家分享下,直接开始。 使用自带动画系统制作下雨效果。 先制作下雨的雨滴涟漪 步骤1: 在 project中新建文件夹,命名为rainFX。将图片素材RainStreak及Ripple导入到rainFX文件夹中,创建一个plane,改名...

在Qt中手动添加ui文件

1.怎么添加UI文件 我们知道在新建项目的时候,可以选择添加*.ui和不添加两种。 当添加上ui 文件的时候,我们可以利用designer来添加控件,直观上看到界面的布局,控件的外观 如果没有添加ui文件,那么久只能用代码生成。 那么如果有一个现有的类(不带ui文件),可否给他新增ui文件呢? 答案是可以。毕竟qt designer form 的简介就是...

WebStorm设置编辑器中的字体大小

启动webStorm之后,点击“FIle"菜单,选择其下的”Settings" 2、在左侧的菜单中选择“Editor/Colors & Fonts/Font 在右侧Scheme Name后侧的”Save as...“按钮,另存一个设置,然后可以修改字体大小和字体。...

[Xcode 实际操作]一、博主领进门-(10)Xcode右侧界面介绍

目录:[Swift]Xcode实际操作 本文将演示Xcode右侧界面介绍。 在项目导航区,打开视图控制器的代码文件【ViewController.swift】 右上角第三个【辅助编辑器】按钮,将代码切换为左右两个区域。 方便编写代码时对比代码文件,或是和故事板上的控件做连接。 再次点击【辅助编辑器】按钮,弹出【编辑器显示模式列表】 【Assistant E...

支持复制粘贴word公式的CKEditor编辑器

由于工作需要必须将word文档内容粘贴到编辑器中使用 今年年底flash将不再被浏览器支持 但发现word中的图片粘贴后变成了file:///xxxx.jpg这种内容,如果上传到服务器后其他人也访问不了,网上找了很多编辑器发现没有一个能直接解决这个问题 考虑到自己除了工作其他时间基本上不使用windows,因此打算使用nodejs来解决这一问题 发现不管什...