渲染树:用于组织复杂的场景,其优势在于我们只需要考虑节点相对于父节点的属性,就可以逐层创建复杂的对象或动作。
cocos2d-x不使用传统的值类型,所有的对象都创建在堆上,然后通过指针引用,创建cocos2d-x对象通常有2种方法:
第一是首先使用new操作符创建一个未初始化的对象,然后调用init系列方法来初始化;第二种是使用静态的工厂方法直接创建一个对象。
选择器(selector)是类似于c++中的类函数指针的机制.
schedule_selector(SELECTOR)
callfunc_selector(SELECTOR)
callfuncN_selector(SELECTOR)
callfuncND_selector(SELECTOR
callfunc_selector(SELECTOR)
menu_selector(SELECTOR)
event_selector(SELECTOR)
compare_selector(SELECTOR)
cocos2d-x的坐标系与绘图属性:
Position用于设置节点的位置。由于Position指的是锚点在父节点中的坐标值,节点显示的位置通常与锚点有关。
(不设置锚点的话,那么默认情况下是0.5,0.5)
当多个节点嵌套时,锚点在父节点中的坐标实际是它相对于父节点左下角的坐标值。
对于场景或层等大型节点,它们的IgnoreAnchorPointForPosition属性为true,此时引擎会认为AnchorPoint永远为0,0
而其他节点的该属性为false它们的锚点不会被忽略。
定时器事件:
定时器是以一定时间间隔联系引发游戏事件的工具。使游戏能动态化。cocos2dx为我们提供了两种方式来实现定时机制--update和schedule
update定时器:CCNode的刷新事件update方法,该方法在每帧绘制之前都会被触发一次。
CCNode默认没有update事件,为了启用定时器,我们需要调用scheduleUpdate方法,并重载update以执行自己的代码,对于我们可以使用unscheduleUpdate方法停止定时器。
shedule定时器
可以实现以一定的时间间隔连续调用某个函数。但时间间隔必须大于两帧,否则两帧间的多次调用会被合并成一次调用。所以schedule定时器通常用在间隔较长的定时调用中,一般来说,事件间隔应在0.1秒以上。实际开发中,一般用这个定时器。
cocos2d-x内置的常用层:
CCLayerColor:一个单纯的实心色块;
CCLayerGradient:一个色块,但可以设置两种颜色的渐变效果;
CCMenu:十分常用的游戏菜单;
菜单由菜单项和菜单本身组成。CCMenuItem表示一个菜单项每个菜单项都是一个独立的按钮,定义了菜单的视觉表现和响应动作;CCMenu则是菜单,它负责将菜单项组织到一起并添加到场景中,转换屏幕的触摸事件到各个菜单项。
cocos2d的一大特色就是提供了事件驱动的游戏框架,引擎会在合适的时候调用事件处理函数,我们只需要在函数中添加对各种游戏事件的处理,就可以完成一个完整的游戏了。例如:为了实现游戏的动态变化,cocos2d提供了两种定时器事件,为了响应用户输入,cocos2d提供了触摸事件和传感事件;此外cocos2d还提供了一系列控制程序生命周期的事件。