游戏的主要逻辑和结构:创建游戏场景,在场景上添加一个或者多个层,在指定层上添加精灵、菜单、文字,为精灵和文字执行某个动作(移动),检测玩家触屏事件,开启任务调度执行碰撞检测和更新数据,通过导演类管理和切换场景等等。
(1)场景(CCScene)
就是游戏的关卡,也可以表示一个界面。你可以只创建一个场景也可以创建多个场景。它是构成游戏的画面,一般是先绘制一个场景,然后在场景中叠加或组合一个或者多个层。
(2)层(CCLayer)
我们的游戏内容一般是显示在层上的,通过叠加多个层来实现不同的效果。可以设置层的叠加顺序,处理事件响应机制。cocos2d-x提供了一些公用层:菜单层,颜色层等。每一层可以包含各式各样的内容要素:文本、精灵、地图等。
(3)精灵(CCSprite)
精灵是整个游戏中的核心对象,如:敌机、英雄、子弹等,精灵就是一些可以不断变化的图片,而所谓游戏,就是玩家操作一个或多个精灵与其他玩家或者系统控制的精灵进行互动。
(4)导演(CCDirector)
cocos2d-x中导演类CCDirector是个单例,这里主要用来管理和显示场景的,还提供一些常用的属性,如获取窗口的宽高等。
(5)任务调度机制
通常在游戏中需要实现一个计时器,以指定的时间间隔不停的调用某个指定的回调函数,来改变屏幕的显示或者进行数据处理。cocos2d-x提供了内置的任务调度机制,即CCNode的schedule成员函数。如
this->schedule(schedule_selector(GameScene::update), 1.0f);
每隔1秒执行一次update函数,如果不指定时间则每一帧执行一次。
(6)动作(CCAction)
就是精灵拥有的动作,如:子弹移动、飞机飞行等。