(转载)Cocos2d-x学习之 整体框架描述

      转载之:http://www.cnblogs.com/lhming/archive/2012/07/01/2572217.html

   在此感谢原作者的幸苦整理。 

   1.Cocos2d-x 整体描述

                和传统的游戏引擎一样,cocos2d-x作为一个2d的游戏引擎,其也有以下几大概念组成:

         1.1  导演(CCDiretor):

                 在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,游戏内的CCScene(场景)、布景(CCLayer)、角色(CCSprite)等的运动,均由CCDirector管理,其在游戏中起着指定游戏规则让游戏内的场景、布景和任务有序的运行。在整个游戏里面,一般只有一个导演,游戏开始和结束时,都需要调用CCDirector的方法完成游戏初始化或销毁工作,其提供了一些场景管理的方法,如runWithScene、DrawScene、pushScene和replaceScen等。

                 它控制FPS的显示隐藏,窗口大小,游戏的进入,退出,关卡的切换,取得正交模式,取得正在运行的场景,取得GL视图,游戏主循环入口等等

       1.2  摄像机(CCCamera)  
              游戏中每个节点都需要摄像机,当节点发生缩放,旋转和位置变化时,都需要覆盖摄像机,让这个节点通过摄像机进行重新渲染。

              官方对于摄像机的描述是这样的:CCCamera应用于每个CCNode中。 在从不同视野观察时起作用,OpenGL中的gluLookAt函数用来定位摄像机。 假如这个物体通过绽放、旋转、或者平移,那么这些操作将修改摄像机。 注意:使用摄像机或者操作旋转、绽放、平移等属性,你只能选其中一个,假如你使用摄像机,世界坐标就会失去作用。 局限性: 几种节点,如CCParallaxNode,CCParticle使用世界节点坐标,并且他们并不能正常工作,假如你使用摄像机移动他们(或者他们的任何父类)。 在成批的结点上(即一个结点上包含多个节点)如CCSprite对象不会正常工作当他们都从属于一个CCSpriteBatchNode对象时。 推荐你只在创建3d特效时使用。对于2d特效来说,用CCFollow动作或者平移、绽放、旋转更好。 
      1.3   场景(CCScene)  
              在游戏里,场景就是关卡。关卡由人物角色和背景构成。在电影里,场景就是电影中的各种场面,各种场面主要由人物活动和背景等构成。而在Cocos2d-x 引擎中,场景存放的是需要渲染的布景,任务角色和菜单,它可以作为一个整体,一起渲染,一起销毁,一起被场景切换使用。即游戏关卡的实施者,其管理这多个CCLayer,进行场景展现,相关业务逻辑的处理等; 
     1.4    布景(CCLayer) 
              从概念上说,布景就是场景里的背景。其实就是层次的概念,这种概念在KJava时代就已经存在,就是手动地把游戏中的场景分层(也有靠地图编辑器实现)。  
              每个游戏场景中都可以有很多层,每一层有各自的职责任务,例如专门负责显示背景,专门负责显示道具,专门负责显示任务角色等,在每一层上面可以放置不同的元素,包括文本,精灵和菜单等,通过层与层之间的组合关系,我们可以很容易的控制和显示各种各样的界面了,当然,其和photoshop中的层一样,也有透明之说,所以为了能够看到每一层上面的东西,很多层都设置为透明或半透明的,否则只能看到最上面的一层了。

             一般一个场景可以有很多层,比如背景图层,物件层,NPC层,角色层,UI层等等,每个层负责自己的功能业务,总的在一个CCScene里共存,随着场景的隐藏而隐藏;不同的层之间可以通过设置不同alpha通道(透明度)进行显示控制;  
     1.5    角色(CCSprite)  
             精灵是整个游戏开发处理的主要对象,包括主角和敌人、NPC等,甚至随机飘过的一片云或飞鸟从技术上讲,也是精灵,因为精灵在cocos2d-x中,就是一个可以不断变化的图片,这些变化包括位置变化,旋转、放大缩小和运动等。  
     1.6   动作(CCAction) 
           角色所具有的动作,一般用于精灵发生动作时使用,如移动,释放魔法等。

    总体来说以上的对象主要关联如下:

wps_clip_image-18441

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值