在前面的Cocos2D-x的概念类中,我们了解到节点类CCNode.导演类CCDirector.场景类CCScene.布景层类CCLayer和精灵类CCSprite等,这些类都是构成游戏画面的基本元素.特别是精灵类CCSprite,它是游戏的主要元素.记得在讲CCSprite时说过,它本质上就是一张二维的图片对象.这些图片对象被加载到游戏中,显示到屏幕中形成各种静态画面.但游戏除了静态画面,更多需要有动态效果(如动作.特效和动画),它将游戏角色性格和情绪活灵活现的表现出来.可以说,动态效果的好坏…
游戏物理引擎是指在游戏中涉及物理现象的逻辑处理,它用于模拟现实世界的各种物理规律(如赛车碰撞.子弹飞行.物体掉落等),让玩家能够在游戏中有真实的体验. Cocos2D-x中支持Box2D和Chipmunk两种第三方开源物理引擎.这两种物理引擎功能上没有本质的区别,只是Chipmunk是用C语言实现的,Box2D是用C++语言实现的.Box2D目前相对使用更为广泛,所以本节只了解Box2D物理引擎. 要学习Box2D物理引擎,我们先来了解一些Box2D中定义的重要概念,这些概念是构成Box2D世界…
我想接触过游戏引擎的同学,对粒子系统应该不会陌生.它用于解决由大量按一定规则运动(变化)的微小物质在计算机上的生成和显示问题.粒子系统在游戏中有着非常广泛的应用,可以模拟很多现象,如火花.爆炸.烟雾.星云.流水.落花等. 粒子系统(partical system)在粒子效果中对所有粒子进行统一控制和调度,它的常见功能如下: ·产生粒子:也被称作粒子发射器(emitter). ·控制粒子:随时间更新粒子的位置.速度以及其他状态. ·回收粒子:当粒子的生存周期结束后就会被系统回收. Cocos2D-…
由于一张大的世界地图或背景图片往往可以由屈指可数的几种地形来表示,每种地形对应于一张小的图片,我们称这些小的地形图片为瓦片.把这些瓦片拼接在一起,组合成一个完整的地图,这就是瓦片地图集的基本原理. Cocos2D-x中支持两种瓦片地图集格式:一种是*.tag文件格式,一种是*.tmx文件格式. ·*.tag文件格式一般采用photoshop生成,在Cocos2D-x中为了兼容性仍保留,目前已经不推荐使用这种方式拼图.虽然如此,我们还是简单了解一下.Cocos2D-x通过类CCTileMapAtl…
在游戏中,经常会周期执行一些检测.操作或更新一些数据等,我们称之为调度.Cocos2D-x中将调度封装为类CCScheduler,方便在游戏开发中使用.我们一起来学习一下,CCScheduler具有哪些调度功能.    从上图可知,CCScheduler直接从基类CCObject继承而来.CCScheduler的调度模式分为两种:一种是update定时器调度,它是按照优先级来进行调度,在Cocos2D-x中优先级分为三类(大于零.小于零和等于零),值越小优先级越高.另一种是按照自定义定时器调度.…
Cocos2D-x引擎支持按键事件,它能检测设备的键盘输入并处理相应的事件.而基于不同操作系统的移动设备,可供用户操作的按键数量和功能都存在差异.   Cocos2D-x使用CCKeypadDelegate接口类处理相应的事件,这个类定义很简单,如下: class CC_DLL CCKeypadDelegate{public:    virtual void keyBackClicked() {} //返回按键事件    virtual void keyMenuClicked() {}; //M…
智能手机的游戏与应用中,也经常会用到加速传感器事件来丰富用户的体验,比如飞翔的企鹅(英文AirPenguin)游戏就是通过加速度传感器来控制角色的移动和跳跃方向.下面学习Cocos2D-x中如何使用加速度传感器事件. Cocos2D-x中使用加速度传感器代理类CCAccelerometerDelegate提供的接口方法来接受加速度传感器的数值变化,类继承关系如下图: 布景层类CCLayer和其子类继承自CCAccelerometerDelegate类,因此它们支持加速度传感器.   CCAcce…
游戏跟视频最大的区别就是互动,而手游(基于智能手机)主要靠触摸屏幕.重力传感和虚拟键盘等方式实现互动.这里主要记录Cocos2D-x对玩家触屏操作的处理. 在Cocos2D-x中触屏分为单点触屏和多点触屏,下面介绍一下与触屏相关的几个类.触屏事件和流程. ·CCTouch(触屏点类):这个类用于封闭触屏点,通过它的locationInView方法返回当前触屏点CCPoint.它还记录上一个触屏点. ·CCTouchDelegate(触屏代理协议类):它是触屏事件委托,系统捕捉到触屏事件后交由它或…
在移动终端(智能手机)平台下开发游戏一般都会涉及到屏幕多分辨率适配问题,原因是手机款式多种多样,不同的款式存在有不同的尺寸,即使尺寸相同又可能存在不同的分辨率. 手机屏幕尺寸:指手机屏幕对角线长度. 手机分辨率:指屏幕上横.纵的总象素点数.分辨率越高,即总象素点数越多,屏幕显示效果越好.               上面我们介绍了手机尺寸和分辨率的概念,结论是手机屏幕显示效果是由尺寸和分辨率决定的.相同尺寸不同分辨率手机,分辨率越高显示效果越好:相同分辨率不同尺寸的手机,尺寸越大显示效果越差.…
在游戏中,音效是一个不可或缺的部分,它可以为我们的游戏增加效果.音效在游戏中一般分为长时间的背景音乐和短促的特效音乐.Cocos2D-x支持多种常见音乐格式(mp3.wav等). Cocos2D-x提供了一个非常简单的跨平台声音引擎,它被包含在CocosDenshion库(编译生成libCocosDenshion.lib)中,目录结构如下:   上图可以看出,Cocos2D-x的声音引擎支持多个平台,我们这里使用的是win32平台. 在include目录中有一个SimpleAudioEngine…