[原创]cocos2d-x研习录-第三阶 特性之粒子系统
我想接触过游戏引擎的同学,对粒子系统应该不会陌生。它用于解决由大量按一定规则运动(变化)的微小物质在计算机上的生成和显示问题。粒子系统在游戏中有着非常广泛的应用,可以模拟很多现象,如火花、爆炸、烟雾、星云、流水、落花等。
粒子系统(partical system)在粒子效果中对所有粒子进行统一控制和调度,它的常见功能如下:
·产生粒子:也被称作粒子发射器(emitter)。
·控制粒子:随时间更新粒子的位置、速度以及其他状态。
·回收粒子:当粒子的生存周期结束后就会被系统回收。
Cocos2D-x的粒子系统是通过类CCParticleSystem实现的,看一看它的类继承关系图,如下:
{
if( CCParticleSystemQuad::initWithTotalParticles(numberOfParticles) )
{
// duration
m_fDuration = kCCParticleDurationInfinity;
m_nEmitterMode = kCCParticleModeGravity;
modeA.gravity = ccp(0,0);
modeA.speed = 80;
modeA.speedVar = 10;
modeA.radialAccel = -60;
modeA.radialAccelVar = 0;
modeA.tangentialAccel = 15;
modeA.tangentialAccelVar = 0;
m_fAngle = 90;
m_fAngleVar = 360;
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
this->setPosition(ccp(winSize.width/2, winSize.height/2));
m_tPosVar = CCPointZero;
m_fLife = 4;
m_fLifeVar = 1;
m_fStartSize = 30.0f;
m_fStartSizeVar = 10.0f;
m_fEndSize = kCCParticleStartSizeEqualToEndSize;
m_fEmissionRate = m_uTotalParticles/m_fLife;
m_tStartColor.r = 0.50f;
m_tStartColor.g = 0.50f;
m_tStartColor.b = 0.50f;
m_tStartColor.a = 1.0f;
m_tStartColorVar.r = 0.5f;
m_tStartColorVar.g = 0.5f;
m_tStartColorVar.b = 0.5f;
m_tStartColorVar.a = 0.5f;
m_tEndColor.r = 0.0f;
m_tEndColor.g = 0.0f;
m_tEndColor.b = 0.0f;
m_tEndColor.a = 1.0f;
m_tEndColorVar.r = 0.0f;
m_tEndColorVar.g = 0.0f;
m_tEndColorVar.b = 0.0f;
m_tEndColorVar.a = 0.0f;
this->setBlendAdditive(true);
return true;
}
return false;
}
{
m_uTotalParticles = numberOfParticles;
m_pParticles = (tCCParticle*)calloc(m_uTotalParticles, sizeof(tCCParticle));
}
注:本人在本博客的原创文章采用创作共用版权协议(http://creativecommons.org/licenses/by-nc-sa/2.5/cn/), 要求署名、非商业用途和保持一致。要求署名包含注明我的网名及文章来源(我的博客地址:http://www.cnblogs.com/binbingg)。
[原创]cocos2d-x研习录-第三阶 特性之粒子系统的更多相关文章
- [原创]cocos2d-x研习录-第三阶 特性之物理引擎
游戏物理引擎是指在游戏中涉及物理现象的逻辑处理,它用于模拟现实世界的各种物理规律(如赛车碰撞.子弹飞行.物体掉落等),让玩家能够在游戏中有真实的体验. Cocos2D-x中支持Box2D和Chipmu ...
- [原创]cocos2d-x研习录-第三阶 特性之瓦片地图集
由于一张大的世界地图或背景图片往往可以由屈指可数的几种地形来表示,每种地形对应于一张小的图片,我们称这些小的地形图片为瓦片.把这些瓦片拼接在一起,组合成一个完整的地图,这就是瓦片地图集的基本原理. C ...
- [原创]cocos2d-x研习录-第三阶 特性之调度器
在游戏中,经常会周期执行一些检测.操作或更新一些数据等,我们称之为调度.Cocos2D-x中将调度封装为类CCScheduler,方便在游戏开发中使用.我们一起来学习一下,CCScheduler具有哪 ...
- [原创]cocos2d-x研习录-第三阶 特性之动作
在前面的Cocos2D-x的概念类中,我们了解到节点类CCNode.导演类CCDirector.场景类CCScene.布景层类CCLayer和精灵类CCSprite等,这些类都是构成游戏画面的基本元素 ...
- [原创]cocos2d-x研习录-第三阶 特性之按键与虚拟键盘
Cocos2D-x引擎支持按键事件,它能检测设备的键盘输入并处理相应的事件.而基于不同操作系统的移动设备,可供用户操作的按键数量和功能都存在差异. Cocos2D-x使用CCKeypadDeleg ...
- [原创]cocos2d-x研习录-第三阶 特性之加速度传感器
智能手机的游戏与应用中,也经常会用到加速传感器事件来丰富用户的体验,比如飞翔的企鹅(英文AirPenguin)游戏就是通过加速度传感器来控制角色的移动和跳跃方向.下面学习Cocos2D-x中如何使用加 ...
- [原创]cocos2d-x研习录-第三阶 特性之触屏
游戏跟视频最大的区别就是互动,而手游(基于智能手机)主要靠触摸屏幕.重力传感和虚拟键盘等方式实现互动.这里主要记录Cocos2D-x对玩家触屏操作的处理. 在Cocos2D-x中触屏分为单点触屏和多点 ...
- [原创]cocos2d-x研习录-第三阶 多分辨率适配器
在移动终端(智能手机)平台下开发游戏一般都会涉及到屏幕多分辨率适配问题,原因是手机款式多种多样,不同的款式存在有不同的尺寸,即使尺寸相同又可能存在不同的分辨率. 手机屏幕尺寸:指手机屏幕对角线长度. ...
- [原创]cocos2d-x研习录-第三阶 背景音乐和音效
在游戏中,音效是一个不可或缺的部分,它可以为我们的游戏增加效果.音效在游戏中一般分为长时间的背景音乐和短促的特效音乐.Cocos2D-x支持多种常见音乐格式(mp3.wav等). Cocos2D-x提 ...
随机推荐
- VMware-workstation-full-12.0.0-2985596&VMware-player-12.0.0-2985596
VMware-workstation-full-12.0.0-2985596 永久KEY:YV3D2-A0D50-481XP-KPNGE-ZV2ZF VMware-player-12.0.0-2985 ...
- tomcat+nginx简单实现负载均衡
1.环境准备 在前面的博客中我已经安装好nginx和一台tomcat了.现在就在加一台tomcat tomcat1: /apps/tomcat/tomcat1/apache-tomcat-7.0.6 ...
- tar命令的使用
tar格式,会打包成一个文件,可以对多个目录,或者多个文件进行打包 tar命令只是打包,不会压缩,打包前后大小是一样的 tar命令 -c //打包 -x //解压 -f //指定文件 ...
- css3动画之背景颜色的自动切换
因为不同浏览器内核的不同所以会产生浏览器兼容性问题 <!DOCTYPE html> <html> <head> <meta charset='utf-8'/& ...
- ARMLinux下Alignment trap的一些测试 【转自 李迟的专栏 CSDN http://blog.csdn.net/subfate/article/details/7847356
项目中有时会遇到字节对齐的问题,英文为“Alignment trap”,如果直译,意思为“对齐陷阱”,不过这个说法不太好理解,还是直接用英文来表达. ARM平台下一般是4字节对齐,可以参考文后的给出的 ...
- matlab初学之句柄
文章出处:http://www.cnblogs.com/CBDoctor/archive/2012/04/06/2434072.html 在matlab中,每一个对象都有一个数字来标识,叫做句柄.当每 ...
- ThinkPHP(3)SQL查询语句
ThinkPHP中对查询语句,包含了基本的查询方式.表达方式.快速查询.区间查询.组合查询.SQL查询.动态查询和子查询. 一.查询方式 ThinkPHP提供了三种基本的查询方式:字符串条件查询.索引 ...
- 通过工厂方式配置bean
src\dayday\CarFactoryBean.java package dayday;import org.springframework.beans.factory.FactoryBean;/ ...
- Hadoop入门系列一
作者:Aitian Ma链接:https://www.zhihu.com/question/24965053/answer/102858134来源:知乎著作权归作者所有,转载请联系作者获得授权. Ha ...
- 用jQuery做一个三级菜单,鼠标移动到二级菜单的选项上,然后再迅速离开后,当鼠标再移动到该一级菜单或其他二级菜单选项,三级菜单也会显示。
用jQuery做一个三级菜单,鼠标移动到二级菜单的选项上,然后再迅速离开后,当鼠标再移动到该一级菜单或其他二级菜单选项,三级菜单也会显示. 原因:在为一个元素绑定hover事件之后,用户把光标移入元素 ...