除了使用Cocos2d-JS的11种内置粒子系统外,我们还可以通过创建ParticleSystem对象,并设置属性实现自定义粒子系统,通过这种方式完全可以实现我们说需要的各种效果的粒子系统。使用ParticleSystem自定义粒子系统至少有两种方式可以实现:代码创建和plist文件创建。
代码创建粒子系统需要手工设置这些属性,维护起来非常困难,我们推荐使用Particle Designer等粒子设计工具进行所见即所得的设计,这些工具一般会生成一个描述粒子的属性类表文件plist,然后通过类似下面的语句加载:
var particleSystem = new cc.ParticleSystem("res/snow.plist");
snow.plist是描述运动的属性文件,plist文件是一种XML文件,参考代码如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>angle</key>
- <real>270</real>
- <key>angleVariance</key>
- <real>5</real>
- <key>blendFuncDestination</key>
- <integer>771</integer>
- <key>blendFuncSource</key>
- <integer>1</integer>
- <key>duration</key>
- <real>-1</real>
- <key>emitterType</key>
- <real>0.0</real>
- <key>finishColorAlpha</key>
- <real>1</real>
- <key>finishColorBlue</key>
- <real>1</real>
- <key>finishColorGreen</key>
- <real>1</real>
- <key>finishColorRed</key>
- <real>1</real>
- <key>finishColorVarianceAlpha</key>
- <real>0.0</real>
- <key>finishColorVarianceBlue</key>
- <real>0.0</real>
- <key>finishColorVarianceGreen</key>
- <real>0.0</real>
- <key>finishColorVarianceRed</key>
- <real>0.0</real>
- <key>finishParticleSize</key>
- <real>-1</real>
- <key>finishParticleSizeVariance</key>
- <real>0.0</real>
- <key>gravityx</key>
- <real>0.0</real>
- <key>gravityy</key>
- <real>-10</real>
- <key>maxParticles</key>
- <real>700</real>
- <key>maxRadius</key>
- <real>0.0</real>
- <key>maxRadiusVariance</key>
- <real>0.0</real>
- <key>minRadius</key>
- <real>0.0</real>
- <key>minRadiusVariance</key>
- <real>0.0</real>
- <key>particleLifespan</key>
- <real>3</real>
- <key>particleLifespanVariance</key>
- <real>1</real>
- <key>radialAccelVariance</key>
- <real>0.0</real>
- <key>radialAcceleration</key>
- <real>1</real>
- <key>rotatePerSecond</key>
- <real>0.0</real>
- <key>rotatePerSecondVariance</key>
- <real>0.0</real>
- <key>rotationEnd</key>
- <real>0.0</real>
- <key>rotationEndVariance</key>
- <real>0.0</real>
- <key>rotationStart</key>
- <real>0.0</real>
- <key>rotationStartVariance</key>
- <real>0.0</real>
- <key>sourcePositionVariancex</key>
- <real>1200</real>
- <key>sourcePositionVariancey</key>
- <real>0.0</real>
- <key>speed</key>
- <real>130</real>
- <key>speedVariance</key>
- <real>30</real>
- <key>startColorAlpha</key>
- <real>1</real>
- <key>startColorBlue</key>
- <real>1</real>
- <key>startColorGreen</key>
- <real>1</real>
- <key>startColorRed</key>
- <real>1</real>
- <key>startColorVarianceAlpha</key>
- <real>0.0</real>
- <key>startColorVarianceBlue</key>
- <real>0.0</real>
- <key>startColorVarianceGreen</key>
- <real>0.0</real>
- <key>startColorVarianceRed</key>
- <real>0.0</real>
- <key>startParticleSize</key>
- <real>10</real>
- <key>startParticleSizeVariance</key>
- <real>5</real>
- <key>tangentialAccelVariance</key>
- <real>0.0</real>
- <key>tangentialAcceleration</key>
- <real>1</real>
- <key>textureFileName</key>
- <string>snow.png</string>
- </dict>
- </plist>
在上述的plist文件描述的属性和属性值都是成对出现,其中<key>标签描述的是属性,<real>描述的属性值。
plist文件中textureFileName属性指定了纹理图片,纹理图片宽高必须是2的n次幂,大小不要超过64x64像素,在美工设计纹理图片时候,不用关注太多细节,例如:设计雪花纹理图片时候,按照雪花是有6个角的,很多人会设计为下图所示的样式,而事实上我们需要的下图所示的渐变效果的圆点。
提示 描述粒子属性的plist文件,可以通过粒子系统设计工具生成,有关粒子系统工具使用大家可以参考本系列丛书的工具卷(《Cocos2d-JS实战(卷Ⅳ):工具详解》)。
下面我们通过实现如下图所示的下雪粒子系统,介绍一下自定义粒子系统的实现。
图中所示的下雪实例,使用plist文件创建,主要代码如下:
- var HelloWorldLayer = cc.Layer.extend({
- ctor: function () {
- //////////////////////////////
- // 1. super init first
- this._super();
- var size = cc.director.getWinSize();
- var bg = new cc.Sprite("res/background-1.png");
- bg.x = size.width / 2;
- bg.y = size.height / 2;
- this.addChild(bg);
- var particleSystem = new cc.ParticleSystem("res/snow.plist");
- particleSystem.x = size.width / 2;
- particleSystem.y = size.height - 50;
- this.addChild(particleSystem);
- return true;
- }
- });
从代码可见plist文件创建粒子系统要比代码创建简单很多,这主要是因为采用了plist描述粒子属性。
本书交流讨论网站:http://www.cocoagame.net
更多精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com
《Cocos2d-x实战 JS卷》现已上线,各大商店均已开售:
京东:http://item.jd.com/11659698.html
欢迎关注智捷iOS课堂微信公共平台,了解最新技术文章、图书、教程信息
相关推荐
3. **图形渲染**:学习如何使用Cocos2d-x的绘图API,包括纹理、精灵批处理、动画和粒子系统,创建丰富的视觉效果。 4. **物理引擎**:了解Cocos2d-x内置的Box2D或Chipmunk物理引擎,如何模拟真实世界的物理行为,如...
cocos2d-html5的核心特性在于其强大的2D渲染引擎,它提供了丰富的图形绘制功能,如精灵、动画、粒子系统、物理引擎等,极大地简化了游戏场景的构建。此外,该框架还支持事件处理、触摸输入、定时器、音频播放,以及...
在Android游戏开发中,Cocos2d-Android-1提供了一系列核心组件,包括场景管理、精灵动画、物理引擎、粒子系统、定时器和事件处理等。这些组件使得开发者能够轻松构建复杂的交互式游戏。例如,场景管理允许开发者组织...
1. **2D渲染**:COCOS2D-X提供了一套完善的2D渲染系统,包括精灵(Sprite)、纹理(Texture)、图层(Layer)、场景(Scene)等基本元素,以及动画、物理引擎、粒子系统等高级功能,能够帮助开发者轻松构建各种复杂...
Cocos2d-html5是一个基于HTML5的开源游戏开发框架,它允许开发者使用JavaScript来创建2D游戏和其他交互式应用。这个压缩包包含了Cocos2d-html5的API文档,对于那些想要深入理解和使用该框架的开发者来说是极其宝贵的...
Cocos2d-x是一个开源的跨平台游戏开发框架,它允许开发者使用C++、JavaScript或Lua语言来创建2D游戏,支持多种操作系统平台,如iOS、Android、Windows Phone以及Windows和Mac OS桌面系统。从提供的内容来看,本章...
3. 脚本支持:Cocos2d-x同时支持Lua和JavaScript,可选择使用脚本语言进行开发。 4. 多语言支持:内置多语言系统,方便游戏本地化。 5. 网络通信:提供网络接口,可用于实现在线对战、数据同步等功能。 通过深入...
同时,它还支持自定义特效和粒子系统。 4. **资源管理**:支持图片、音频、字体等资源的加载和管理,确保游戏资源在内存中的有效使用。 5. **物理引擎**:通过Box2D物理引擎,开发者可以为游戏添加真实的物理行为...
此外,Cocos2D-x还支持物理引擎、粒子系统、动画编辑器等内容,为游戏开发提供了强大的工具。 在项目中,"Resources"目录包含了游戏的所有资源,如图片、音频、纹理 Atlases等。这些资源是游戏画面和音效的基础,...
Cocos2d-X是一款广泛使用的开源游戏开发框架,基于C++,同时支持Objective-C和JavaScript,适用于iOS、Android以及Windows等多个平台。本书分为两卷,卷一包含了前200页的内容,卷二涵盖了200到360页,另外还附带了...
cocos2d-x提供了丰富的API,包括渲染、动画、物理引擎、碰撞检测、粒子系统、定时器、触摸事件处理等。开发者可以通过这些接口创建复杂的2D游戏场景。 在`Resource`和`Classes`两个目录中,我们可以深入探讨cocos2d...
特效可以通过粒子系统、着色器等高级技术实现,为游戏带来更加丰富和动态的视觉效果。 7. 用户输入:Cocos2d-x支持多种用户输入方式,包括触摸、重力感应、键盘和鼠标事件等。开发者需要了解如何捕获和处理这些输入...
6. **粒子系统**:Cocos2d-X提供了强大的粒子系统,用于创建各种视觉效果,如火、烟、雪花等。读者将学习如何创建和编辑粒子效果,并将其应用于游戏中。 7. **资源管理**:资源的加载、缓存和释放是游戏性能优化的...
此外,Cocos2d-x还包括动画、物理引擎、粒子系统、触摸事件处理、定时器等游戏开发必备工具。 2. **游戏架构设计**: 飞机大战的游戏架构通常包括游戏主循环、场景管理、游戏对象(飞机、子弹、敌人等)、碰撞检测...
在实际游戏开发中,混合模式常用于粒子系统、动画特效和UI设计。 通过以上分析,我们可以总结出以下知识点: 1. Cocos2D-X的渲染框架:理解Cocos2D-X如何组织和呈现游戏画面。 2. 布景层(CCLayer):作为游戏场景...
8. **粒子系统**:Cocos2d-x的粒子系统用于创建各种视觉效果,如火焰、烟雾、爆炸等,开发者可以自定义粒子参数以实现各种特效。 9. **2D渲染扩展**:可能包含了图层(Layer)、菜单(Menu)、标签(Label)等2D...
除此之外,Cocos2D-X还包括事件处理系统、触摸输入支持、粒子系统、Tiled地图编辑器支持等高级功能。事件处理系统使开发者能响应用户输入和其他游戏事件;触摸输入支持让游戏适应触摸屏设备;粒子系统用于创建炫酷的...
7. **粒子系统**:创建复杂的粒子效果,如火焰、烟雾、爆炸等。 8. **音频和音乐**:整合音频引擎,实现背景音乐和音效的播放控制。 9. **脚本系统**:讲解Lua或JavaScript的使用,实现灵活的游戏逻辑。 10. **扩展...
4. 特效:COCOS2D-X支持粒子系统,可以用来制作爆炸、射击等视觉效果,提升游戏体验。 5. 声音效果:集成音频引擎,播放背景音乐和各种音效,增强沉浸感。 三、游戏逻辑与控制 1. 用户输入:处理键盘事件,如方向...