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

1.导演(Director)

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

  • 访问和改变场景
  • 访问Cocos2d-x的配置信息
  • 暂停、继续、和停止游戏
  • 转换坐标

Director类的类关系

2.场景(Scene)

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

  • 展示类场景:播放视频或简单地在图像上输出文字,来实现游戏的开场介绍、胜利和失败提示、帮助介绍
  • 选项类场景:包括主菜单、设置游戏参数等
  • 游戏场景:游戏的主要内容

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的位置。

时间: 2024-12-19 14:42:50

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

OpenFlow Switch学习笔记(一)——基础概念

OpenFlow Switch v1.4.0规范是在2013年10月14号发布,规范涵盖了OpenFlow Switch各个组件的功能定义.Controller与Switch之间的通信协议Open Flow Protocol等.下文主要是基于个人理解整理的一些学习笔记,理解不到位的地方还请大家多多指教. 一.基础概念图: 首先我们先看下Open Flow Switch的整体结构,以便有一个初步的感性认识,如下图所示: 从上面架构图中,我们可以看到Open Flow Switch主要是由以下几个部

Elasticserach学习笔记-01基础概念

本文系本人根据官方文档的翻译,能力有限.水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸. 原文出处:https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html ElasticSearch有几个核心概念,了解它们将有助于我们的整个学习过程. 近乎实时(NRT)Elasticsearch是一个近乎实时的搜索平台.这意味着从你为一个文档建立索引到该文档可被检索

《R语言实战》学习笔记seventh

由于在准备软考中级数据库系统工程师外加巩固SQL Server 2012,所以拖了好久一直没继续学R 下去 所以今天重开R 的战事 这次是关于基本统计分析的内容,即关于用于生成基本的描述性统计量和推断统计量的R 函数 首先,将着眼于定量变量的位置和尺度的衡量方式 然后将是生成类别型变量的频数表和列联表的方法(以及连带的卡方检验) 接下来将考察连续型和有序型变量相关系数的多种形式 最后转而通过参数检验(t检验)和非参数检验(Mann-Whitney U检验.Kruskal-Wallis检验)方法研

《Spring3.X企业应用开发实战》学习笔记--DAO和事务

本篇是"<Spring3.X企业应用开发实战>,陈雄华 林开雄著,电子工业出版社,2012.2出版"的学习笔记的第二篇,关于DAO和事务. 本篇从DAO操作,以及事务处理的基本知识谈起,介绍事务本身,以及Spring如何通过注解实现事务. DAO 近几年持久化技术领域异常喧嚣,各种框架如雨后春笋般地冒出,Sun也连接不断的颁布了几个持久化规范. Spring对多个持久化技术提供了持久化支持,包括Hibernate,iBatis,JDO,JPA,TopLink,另外,还通过S

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

Java快速教程--vamei 学习笔记(基础篇)

链接:http://www.cnblogs.com/vamei/archive/2013/03/31/2991531.html java快速教程第1课 从HelloWorld到面向对象 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/14/2958654.html java快速教程第2课 方法与数据成员 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/25/2964430.html java快

C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字节的值,该如何在它上面调用方法? 二:值类型转换为引用类型--装箱 2.1CLR对值类型进行装箱时:新分配托管堆内存,将值类型的实例字段拷贝到新分配的内存中,返回托管堆中新分配对象的地址.这个地址就是一个指向对象的引用. int i = 10; Object obj = i; 三:将引用类型转换为值

[Golong]学习笔记(一) 基础知识

Go编程基础 Go的内置关键字(25个) 不多 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continute for import return var Go的注释方法(和js一样) 单行注释: // 多行注释: /**/ Go程序一般结构 common_structure.go 通过 pack

01-Python学习笔记-基础语法

Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 -v            输出Python版本号 -X           从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时. -c cmd     执行 Python 脚本,并将运行结果作为 cmd 字符串. file           在给定的python文件执行python脚本. P

《R语言实战》学习笔记fourth

又拖了好久继续写R 语言的学习笔记了啊 这次到了基本数据管理了,众所周知数据准备是数据分析的最重要的前提 书本是从一个例子开始本章的内容的,例子是一个类似调查问卷的 然后把回答标为从1到5,再进行分析(这让我想到了自学SPSS 的时候啊) > manager <- c(1, 2, 3, 4, 5) > date <- c("10/24/08", "10/28/08", "10/1/08", "10/12/08&q