码迷,mamicode.com
首页 > 编程语言 > 详细

《Cocos2d-x实战:C++》学习笔记(1)——基础概念

时间:2016-05-22 16:38:09      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

1.导演(Director)

导演类(v3.0之前是CCDirector)用于管理场景对象,采用单例设计模式,在整个工程中只有一个实例对象。由于是单例模式,能够保存一致的配置信息,便于管理场景对象。用getInstance()方法获取Director的实例。导演对象的职责如下:

  1.访问和改变场景

  2.访问Cocos2d-x的配置信息

  3.暂停、继续、和停止游戏

  4.转换坐标

技术分享
Director类的类关系
2.场景(Scene)
场景类(v3.0之前是CCScene)是构成游戏的界面,类似于电影中的场景。场景大致分为以下几类:

  1.展示类场景:播放视频或简单地在图像上输出文字,来实现游戏的开场介绍、胜利和失败提示、帮助介绍

  2.选项类场景:包括主菜单、设置游戏参数等

  3.游戏场景:游戏的主要内容

Director类控制场景常用方法:

  runWithScene(Scene *scene)启动游戏,并运行scene场景本方法在主程序第一次启动主场景的时候调用。如果已有正在运行的场景则不能调用该方法;会调用pushScene-->startAnimation。

  pushScene( Scene *scene ) 将当前运行中的场景暂停并压入到代码执行场景栈中,再将传入的scene设置为当前运行场景,只有存在正在运行的场景时才调用该方法。

  replaceScene( Scene *scene ) 直接使用传入的scene替换当前场景来切换画面,当前场景被释放。这是切换场景时最常用的方法。

  popScene() 释放当前场景,再从代码执行场景中弹出栈顶的场景,并将其设置为当前运行场景。如果栈为空,直接结束应用。和PushScene结对使用。

  end() 释放和终止执行场景,同时退出应用。

  pause() 暂停当前运行场景中的所有计时器和动作,场景仍然会显示在屏幕上。

  resume () 恢复当前运行场景的所有计时器和动作,场景仍然会显示在屏幕上。

技术分享
Scene类的类关系
3.层(Layer)
Layer是处理玩家事件响应的Node子类。与场景不同,层通常包含的是直接在屏幕上呈现的内容,并且可以接受用户的输入事件,包括触摸,加速度计和键盘输入等。我们需要在层中加入精灵,文本标签或者其他游戏元素,并设置游戏元素的属性。层的叠加是有顺序的,从上到下依次是:菜单层->精灵层->背景层,同样层的次序也用于事件响应,即菜单层最先接收到系统事件,然后是精灵层,最后则是背景层。向场景中添加层,可以用addChild方法。先添加的层会被置于后添加层的下面,如果我们需要为它们指定顺序的话可以设置不同的zOrder值。
技术分享
Layer类的类关系
4.精灵(Sprite)
精灵类Sprite(v3.0之前是CCSprite)是游戏中非常重要的概念,它包括敌人、控制对象、静态物体和背景灯。通常情况他会进行运动,运动的方式包括移动、旋转、放大、缩小和动画等。Sprite包含很多类型,例如物理引擎精灵类也属于精灵。
技术分享
Sprite类的类关系
5.菜单(Menu)
菜单在游戏中是非常重要的概念,它提供了操作的集合。在菜单中又包含了菜单项MenuItem,MenuItem中又有很多的子类,如MenuItemLabel、MenuItemSprite和MenuItemToggle,它们表现出不同的效果,每个菜单项都有三个基本状态:正常、选中和禁止。
技术分享
Menu类的类关系
 
技术分享
MenuItem类的类关系
6.Position和AnchorPoint、UI坐标和OpenGL坐标、世界坐标和模型坐标
    Position(位置)属性是Node对象的实际位置,但Position属性往往要配合AnchorPoint才能精准的把一个Node对象放在合适的位置。AnchorPoint是一个对象的锚点,就是一个Node对象的锚点在它本身的比例,比如,AnchorPoint为(0.5,0.5)它就以中心点为锚点,AnchorPoint为(1,1)则就是以一个Node的右上角为锚点。
    UI坐标原点在左上角,x轴向右为正,y轴向下为正。在Android和ios等平台是遵守这个坐标系。OpenGL坐标原点在做下角,x轴向右为正,y轴向上为正,Cocos2d-x底层采用的OpenGL渲染,因此默认坐标就是OpenGL坐标。
    世界坐标就是一个对象在这个世界坐标中真实的位置,而模型坐标则是对象2相对于对象1的位置。
 

《Cocos2d-x实战:C++》学习笔记(1)——基础概念

标签:

原文地址:http://www.cnblogs.com/fengxmx/p/5516843.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!