[cocos2dx]cocos2dx主要概念

Cocos2dx中的主要概念包括:应用、导演、场景、图层、精灵、动画、动作。层次关系如下:

CCDirector(导演)在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,,游戏内的CCScene(场景)、布景(CCLayer)、角色(CCSprite)等的运动,均由CCDirector管理,其在游戏中起着指定游戏规则让游戏内的场景、布景和任务有序的运行。在整个游戏里面,一般只有一个导演,游戏开始和结束时,都需要调用CCDirector的方法完成游戏初始化或销毁工作,其提供了一些场景管理的方法,如runWithScene、DrawScene、pushScene和replaceScen等。1.OpenGL ES的初始化;2.场景的转换;3.游戏的暂停、继续的控制;4.世界坐标和GL坐标之间的切换;5.对节点的控制;6.保存和调用保存的游戏数据;7.屏幕尺寸的获取,等等。属性相关//获得当前运行的场景,cocos2dx同时只能运行一个场景 Scene* getRunningScene(); //获取fps值 double getAnimationInterval(); //设置fps值 void setAnimationInterval(double dValue); //fps是否是显示状态 bool isDisplayStats(); //设置是否显示fps void setDisplayStats(bool bDisplayStats); //获取每帧秒数 float getSecondsPerFrame(); //获取openGLView GLView* getOpenGLView(); //设置openGLView void setOpenGLView(GLView *pobOpenGLView); //判断是否暂停 bool isPaused(); //获取调用到现在的所有帧数 unsigned int getTotalFrames(); //判断被替换的场景是否接收到cleanup事件//replace方式会,而push方式则不会 bool isSendCleanupToScene(void);窗口相关//返回以点为单位openGL视图的大小const Size& getWinSize() const; //返回以像素为单位openGL视图的大小Size getWinSizeInPixels() const;//返回以点为单位的 OpenGL 视图的可见大小. Size getVisibleSize() const;//返回以点为单位的 OpenGL 视图的初始化时的可见大小Vec2 getVisibleOrigin() const; //UIKit的坐标转换到一个OpenGL坐标 使用当前布局(横向或纵向)有效的(多)触摸坐标Vec2 convertToGL(const Vec2& point);//一个OpenGL坐标转换到UIKit的坐标 点组成的窗口调用有效的节点上面的点 Vec2 convertToUI(const Vec2& point);场景管理相关//根据给定的场景进入 Director的主循环 只能调用他运行你的第一个场景void runWithScene(Scene *scene); //暂停执行正在运行的场景中,pushing一个在堆栈上推暂停的场景。 新的场景将被执行.void pushScene(Scene *scene); //从队列中弹出一个场景。 这个场景将替换正在运行的场景.void popScene(); //从队列中弹出所有的场景,直到只有根场景在队列中 这个场景将替换正在运行的场景.void popToRootScene();//弹出从队列中的所有场景,直到它到达 level.void popToSceneStackLevel(int level);//用一个新的替换正在运行的场景。终止正在运行的场景。 仅在有一个正在运行的场景的时候调用他. void replaceScene(Scene *scene); //结束执行,释放正在运行的场景。void end();//暂停正在运行的场景。void pause(void); //恢复暂停的场景 预定的定时器将被再次激活。 “推迟执行”的时间将是0(如果游戏没有暂停)void resume();CCCamera(摄像机)每个节点都需要使用摄像机,当节点发生缩放,旋转,和位置变化时,都需要覆盖摄像机,让这个节点通过摄像机重新渲染。CCScene(场景)在游戏里,场景就是关卡。关卡由人物角色和背景构成。在电影里,场景就是电影中的各种场面,各种场面主要由人物活动和背景等构成。而在Cocos2d-x 引擎中,场景存放的是需要渲染的布景,任务角色和菜单,它可以作为一个整体,一起渲染,一起销毁,一起被场景切换使用。即游戏关卡的实施者,其管理这多个CCLayer,进行场景展现,相关业务逻辑的处理等;一个场景就是一个界面,定义了所显示的所有角色图层信息Scene(场景)是一个抽象的概念,仅被用作Node(节点)的一个子类。Scene(场景)和Node(节点)几乎相同,不同的是Scene的默认锚点在屏幕的中心。现在 scene 没有其它的逻辑,不需要我们做太多的操作及处理,更多的操作处理基本都是在布景层上完成。CCLayer(图层)Layer是处理玩家事件响应的Node子类。与场景不同,层通常包含的是直接在屏幕上呈现的内容,并且可以接受用户的输入事件,包括触摸、键盘输入等。我们需要在层中加入Sprite(精灵)、文本标签或者其它游戏元素,并设置游戏元素的属性,比如位置、方向和大小;设置游戏元素的动作等。在我们设计好层以后,只需要把层按照顺序添加到场景中就可以显示出来了。一个场景中有多个可以交互的图层,每层显示不同的角色信息Layer类是Node类的一个子类,它实现了触屏事件代理(TouchEventsDelegate)协议。子类:LayerColor是Layer的一个子类,它实现了RGBAProtocol协议。LayerGradient是LayerColor的一个子类,它在背景上画渐变效果。LayerGradient它实现了LayerColor类的所有功能,还添加了以下这些新功能:渐变方向、渐变最终颜色、插值模式。LayerMultiplex类是一个能够使它的子类进行复用的布景层类。常用方法//初始化函数 virtual bool init(); //分配内存,默认创建一个全屏的黑色布景层 static Layer *create(void); //层进入回调 virtual void onEnter(); //层退出回调 virtual void onExit(); //如果层进入伴随转换效果,效果完成时回调 virtual void onEnterTransitionDidFinish(); //触摸事件(单点) virtual bool onTouchBegan(Touch *touch, Event *unused_event); virtual void onTouchMoved(Touch *touch, Event *unused_event); virtual void onTouchEnded(Touch *touch, Event *unused_event); virtual void onTouchCancelled(Touch *touch, Event *unused_event);//触摸事件(单点和多点)virtual void onTouchesBegan(const std::vector<Touch*>& touches, Event *unused_event);virtual void onTouchesMoved(const std::vector<Touch*>& touches, Event *unused_event);virtual void onTouchesEnded(const std::vector<Touch*>& touches, Event *unused_event);virtual void onTouchesCancelled(const std::vector<Touch*>&touches, Event *unused_event);//注册触摸分发,默认是addStandardDelegate virtual void registerWithTouchDispatcher(void); //判断触屏事件是否开启bool isTouchEnabled(); //开启或关闭触屏事件void setTouchEnabled(bool value); //设置/获取触摸模式 void setTouchMode(Touch::DispatchMode mode) Touch::DispatchMode getTouchMode();//触屏事件中的 swallowsTouches 事件。默认是true.void setSwallowsTouches(bool swallowsTouches);bool isSwallowsTouches() const; //设置/获取是否接收键盘事件 bool isKeypadEnabled(); void setKeypadEnabled(bool value); //返回键和菜单键的回调,需要设置接收键盘事件 void keyBackClicked(void); void keyMenuClicked(void);CCSprite(精灵)角色(CCSprite) 精灵是整个游戏开发处理的主要对象,包括主角和敌人、NPC等,甚至随机飘过的一片云或飞鸟从技术上讲,也是精灵,因为精灵在cocos2d-x中,就是一个可以不断变化的图片,这些变化包括位置变化,旋转、放大缩小和运动等。 Sprite类继承关系

你的脸是为了呈现上帝赐给人类最贵重的礼物–微笑,一定要成为你工作最大的资产。

[cocos2dx]cocos2dx主要概念

相关文章:

你感兴趣的文章:

标签云: