一、cocos2dx概念简介
cocos2dx概念介绍
1)scene,继承自CCScene
场景,一个游戏运行期间的显示界面,一个应用里面可以有多个场景,但是每次只能有一个是激活状态,也可以理解为一次只能显示一个界面。
例如,你的游戏有如下的界面:介绍,菜单,等级场景,胜利场景,失败场景,高分界面。如此多的界面组成了整个游戏,如下图所示是一个场景流程图。
一个CCScene是由一个或者多个CCNode组成,可以将CCNode添加到scene中。CCNode的子类,比如CCLayer和CCSprite,能够给场景提供外观和行为。
因为场景是CCNode的一个子类,所以可以通过CCActions制作一些动画。
2)Director
CCDirector是一个控制器,控制不同场景之间的切换,本身是一个单例。它知道现在哪个场景是活动的并且允许你通过替换当前的场景或者把一个新的场景放到场景栈中来改变场景。当你把一个新场景放到场景栈里,CCDirector暂停之前的场景,并且把它保存在内存里,然后显示新场景。一会之后,如果你把场景栈顶端的场景pop出之后,之前的场景将会恢复其最后的状态并显示出来。
CCDirector也负责初始化OpenGL ES。
3)Layers
CCLayer是一个知道如何处理接触操作的CCNode。Layers知道如何绘制并且可能是半透明的,玩家能够看到这些Layer之后的东西。CCLayers在定义游戏的界面和动作是非常重要的,所有在开发中你需要花费大多数时间去写一些CCLayer的子类来实现你想要的。
CCLayer可以定义触摸回调,通过继承一些方法可以处理触摸事件(ccTouchBegan,ccTouchMoved,ccTouchEnded或者ccTouchCancelled)。一个CClayer能够跟用户进行互动。这些触摸事件能够在一个场景中的所有Layer中一层层传递下去,直到某个Layer获取他们并且能够处理事件,则停止传递。
复杂的应用需要你去自定义一些CCLayer的子类,cocos2d提供了几个预定义的layers。比如CCMenu(一个简单的菜单层),CCColorLayer(一个可以绘制实体颜色的层),CCLayerGradient (一个可以绘制渐变颜色的层),CCLayerMultiplex(一个可以处理多个复杂子层的Layer,能够一次激活一个子层,并且与此同时disable其他的层)
Layers可能包含CCNode作为子层,包括CCSprites,CCLabels,并且甚至其他的CCLayer对象。
多层的例子如下:
1 CCLayerGradient* layer1 = CCLayerGradient::create(ccc4(255, 0, 0, 255), ccc4(255, 0, 255, 255));
2 layer1->setContentSize(CCSizeMake(80, 80));
3 layer1->setPosition(ccp(50,50));
4 addChild(layer1);
5
6 CCLayerGradient* layer2 = CCLayerGradient::create(ccc4(0, 0, 0, 127), ccc4(255, 255, 255, 127));
7 layer2->setContentSize(CCSizeMake(80, 80));
8 layer2->setPosition(ccp(100,90));
9 addChild(layer2);
10
11 CCLayerGradient* layer3 = CCLayerGradient::create();
12 layer3->setContentSize(CCSizeMake(80, 80));
13 layer3->setPosition(ccp(150,140));
14 layer3->setStartColor(ccc3(255, 0, 0));
15 layer3->setEndColor(ccc3(255, 0, 255));
16 layer3->setStartOpacity(255);
17 layer3->setEndOpacity(255);
18 ccBlendFunc blend;
19 blend.src = GL_SRC_ALPHA;
20 blend.dst = GL_ONE_MINUS_SRC_ALPHA;
21 layer3->setBlendFunc(blend);
22 addChild(layer3);
4)Sprites精灵
一个cocos2d CCSprite是一个2D的并且能够移动,旋转,缩放,实现动画的图片元素,
一个CCSprite可以有其他的CCSprite作为子元素。当父节点被转换,所有的它的子元素也会对应的转换。
转载请注明出处:http://blog.csdn.net/qinning199/article/details/11100727
一、cocos2dx概念简介的更多相关文章
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- java 并发多线程显式锁概念简介 什么是显式锁 多线程下篇(一)
目前对于同步,仅仅介绍了一个关键字synchronized,可以用于保证线程同步的原子性.可见性.有序性 对于synchronized关键字,对于静态方法默认是以该类的class对象作为锁,对于实例方 ...
- Java多线程概念简介 多线程中篇(一)
Java的线程与操作系统的线程 在线程的相关介绍中,有讲到“线程的实现”分为三种:内核支持,用户级以及两者混合.(这只是一种简要的分类) Java线程在JDK1.2之前,是用户线程实现的 而在JD ...
- 转:WebGL、Asm.js和WebAssembly概念简介
WebGL.Asm.js和WebAssembly概念简介 转:http://www.techbrood.com/zh/news/webgl/webgl%E3%80%81asm_js%E5%92%8Cw ...
- NSIS打包(一)常用概念简介
1.NSIS简介 官网:http://sourceforge.net/projects/nsis/ 维基百科: http://zh.wikipedia.org/wiki/Nullsoft%E8%85% ...
- 二、Cocos2dx概念介绍(游戏开发中不同的坐标系,cocos2dx锚点)
注:ccp是cocos2dx中的一个宏定义,#define ccp(__X__,__Y__)CCPointMake((float)__X__, (float)__Y__),在此文章中表示坐标信息 1. ...
- 从零开始部署小型企业级虚拟桌面 -- Vmware Horizon View 6 For Linux VDI -- 概念简介
什么是桌面虚拟化? 桌面虚拟化有很多概念,此处谈论的,是指的一般企业使用的“服务器 + 虚拟机 + 云终端”的方式来实现的. 桌面虚拟化的原理是什么? 桌面虚拟化看上去高大上,实际上原理非常的简单.拿 ...
- GBDT(MART)概念简介
GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种用于回归的机器学习算法,该算法由 ...
- Kubernetes核心概念简介
本文将会简单介绍Kubernetes的核心概念.因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍.相反,我们会使用一些图表(其中一些是动画)和示例来解释这些概 ...
随机推荐
- LeetCode 58 Spiral Matrix II
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ...
- 关于sed的应用
公司让我做一个看一下在优化的程序和比原来的程序快多少,但是文件还在运行的服务器上,我需要把用到的文件复制到测试服务器上去.但是测试服务器上有的,目录不全,会导致scp出错.就发生了以下的故事. 首选我 ...
- (转)走进JVM,浅水也能捉鱼
这不是一篇描述jvm是什么的文章,也不介绍jvm跨平台的特性,也不是讲述jvm安全特性的文章,更不是讲解jvm指令操作,数据运算的文章,本文重点讲述类型的生命周期. 类型的生命周期涉及到:类的装载.j ...
- http 压缩
HTTP压缩是在Web服务器 和浏览器间传输压缩文本内容的方法.HTTP压缩采用通用的压缩算法如gzip等压缩HTML.JavaScript或 CSS文件.压缩的最大好处就是降低了网络传输的数据量,从 ...
- C#图像处理(5):无损保存图片
C#使用默认方法对图像进行保存的时候图像会有损失,以下提供无损保存的方法: /// <summary> /// 无损保存图片 /// </summary> /// <pa ...
- iOS横竖屏
现在开发的APP大部分界面是竖屏的,只有视频播放的界面和webview阅读文字的界面是可以横屏操作的. 那么就进行如下处理: 1.首先确保APP支持横屏旋转 2.我的App里面都是走UINavigat ...
- UI基础视图----UIWebView总结
UIWebView是UIKit框架中继承于UIView的一个常用的基础视图,和UILabel,UIImageView是兄弟类,用于展示一个网页. UIWebView是一个可以设置代理的类,在加载的不同 ...
- Installation error: INSTALL_CANCELED_BY_USER
这个错误,从字面上理解,就是已经安装的时候被用户取消了. 我出现这个错误的时候,是手机连接在电脑上的. 经过网上搜索,确认这是安装apk到手机时,被手机取消了安装操作. 1. 确保手机处于开发者模式. ...
- UWP开发小记
针对个人的上一篇文章中提到的遇到的几个问题,做一下个人解答 DLL部署的问题,可以将DLL添加到工程中,属性中设置content为true,这样,部署目录下就会有这个文件. 需要说明的是,这个文件确实 ...
- 函数:递归是神马 - 零基础入门学习Python022
函数:递归是神马 让编程改变世界 Change the world by program 我们这节课的主题叫递归是神马,将通过小甲鱼带感的讲解,来告诉大家神马是递归!如果说优秀的程序员是伯乐,那么把递 ...