cocos2d-x笔记(2)

来源:互联网 发布:淘宝推广招聘要求 编辑:程序博客网 时间:2024/05/27 08:13

一、CCNode另外一些属性

1.CCArray* Chilren:获取或设置该节点的子引用的数组。

2.CCNode* Parent:获取或设置该节点的父节点。

3.CCCamera* Camera:获取或设置该节点的摄像机状态,摄像机(CCCamera)定义了绘制节点时的视点,通常用于实现特效。

4.CCGridBase* Grid:获取或设置该节点的网格特效状态。网格应用于绘图平面上,可以实现水纹等3D特效。

5.CCGLProgram* ShaderProgram:获取或设置该节点的sharder(着色器)程序。CCGLProgram是OpenGL的glProgram的封装。

6.CCActionManager* ActionManager:获取或设置该节点所使用的动作管理器。当节点设置了新的动作管理器时,正在执行的动作管理器会被丢弃。

7.CCScheduler* Scheduler:获取或设置该节点所使用的计时器管理器。当为节点设置新的计数器管理器时,正在执行的计时器管理器会被丢弃。

二、节点CCNode继承给派生类管理节点的方法;

1.addChild(CCNode* child)::把child添加到当前节点之中。

2.void removeFromParentAndCleanup(bool cleanup):把当前节点从其父类中移除,如果cleanup为true,则调用child的clean()方法

3.void removeChildByTag(int tag):从当前节点中移除标号为tag的节点。

4.void removeAllChildrenWithCleanup(bool cleanup):移除当前节点的所有子节点,当cleanup为true,则调用child的clean()方法。

5.CCNode* getChildByTag(int tag):返回当前节点标号为tag的节点。

6.cleanup:停止此节点的全部动作计时器。

三、CCNode内置事件

//当此节点所在场景即将呈现时,会调用此方法。virtual void onEnter();//当此节点所在场景的入场动作结束后,会调用此方法。如果所在场景没有入场动作//则此方法会紧跟着onEnter()后执行。virtual void onEnterTransitionDidFinish();//当此节点所在场景即将退出时,会调用此方法。virtual void onExit();//当此节点所在场景的出场动作结束后,会调用此方法。如果所在场景没有出场动作//则此方法会紧跟着onExit()后执行。virtual void onExitTransitionDidStart();这些事件的默认实现通常负责处理定时器和动作的启动与暂停,因此必须在重载方法中调用父类的方法。例如,我们可以在场景开始时设置背景音乐。代码:void MyScene::onEnter(){CCScene::onEnter();this->palyBackgroundMusic();}

关于流程:

四、Cocos2d-X中,负责调用定时器,绘图,发送全局通知,并处理回收池的方法就是CCDirector::mainloop()方法,该方法按帧调用,帧间间隔有两个因素,一个是预设帧率,默认为60帧每秒;另一个是每帧的计算量大小。当逻辑处理与绘图计算量过大时,设备无法完成每秒60次绘制,此时帧率就会下降。

五、mainloop()方法会被定时调用,然而在不同的平台下调用者不同。相关源码在platform目录。




0 0
原创粉丝点击