cocos2d-x有很多核心概念:导演,场景,层,节点,精灵,菜单等。
一:导演。
导演类(Director)用于管理场景对象,使用单例模式。获取导演实例:
auto director = Director.getInstance();
二:场景
场景类(Scene)构成游戏的界面。
三:层
层(Layer)是写游戏的重点,一层一层的叠在一起。每一层可以包括各式各样的元素。
四:精灵
精灵(Sprite)包括敌人,控制对象,静态物体,背景等。通常会运动,会缩放,会旋转。
五:菜单
菜单(Menu),派生于Layer类,提供了操作的集合。Menu下包含菜单项(MenuItem)。MenuItem包含了各种子类。比如MenuLabel等。每一个菜单项都有正常,选中和静止三种状态。
六:节点
cocos2d-x采用树形(层级)结构管理场景,层,精灵,菜单,文本,地图,粒子系统等节点(Node)对象。
一个场景包含了多个层,一个层又包含多个精灵,文本,菜单等对象。这些节点都有一个共同父类,就是Node对象。Node对象有很多重要的函数。
(1)创建节点:Node::create();
(2)增加新的子节点:Node::addChild(childNode,0,123)
(3)删除节点;Node::removeChild()
Node中的重要属性:position和anchorPoint
position是Node的位置属性。而anchorPoint是Node的描点。默认是(0.5,0.5),通过setAnchorPoint()来设定描点。从而改变position的实际位置。
七:游戏循环和调度
Node类封装了Scheduler类,对游戏循环进行调度。主要函数有:
(1)void scheduleUpdate(void),每个Node对象只要调用该函数,那么这个Node对象就会定时的每帧回调用一次自己的update(float dt)函数。
(2)void schedule(SEL_SCHEDULE selector,float interval)可以通过SEL_SCHEDULE指定回调函数,也可以更改回调时间间隔
(3)void unscheduleUpdate(void),停止update函数回调
八:cocos2d的坐标系:OpenGl坐标系,原点在左下角