cocos2d-x基本元素
from://http://www.cnblogs.com/ArmyShen/p/3239664.html
1、CCDirector(导演类)
控制游戏流程的主要类,主要负责设定游戏窗口、切换场景、暂停或恢复场景等工作。
由于CCDirector的全局性,所以它是一个单例,整个程序中只会存在一个它的实例:
//获得CCDirector实例
CCDirector *pDirector = CCDirector::sharedDirector();

/*--------CCDirector场景管理方法--------*/
//程序启动时运行第一个场景时调用
void runWithScene(CCScene *pScene); //直接替换当前运行的场景为pScene,这是最常用的一个场景切换方法
void replaceScene(CCScene *pScene); //将当前场景暂停,压入到带待执行场景栈中,设pScene为当前运行的场景
void pushScene(CCScene *pScene); //释放当前场景,并从待执行场景栈中弹出栈顶场景,将其设为运行场景。如果栈为空,则退出程序。与pushScene结合使用
void popScene(void); //暂停当前场景中的所有内容
void pause(void); //恢复暂停的场景,与pause结合使用
void resume(void); //结束场景,退出游戏
void end(void);

2、CCScene(场景)
没有特别的功能。通常是作为层(CCLayer)的容器,它的另一个作用就是流程控制,可以利用CCDirector::replaceScene(CCScene *pScene)自由的切换场景。
可以使用CCLayer替代CCScene,但是这样就不能使用CCTransitionScene实现场景间的切换效果了。
3、CCLayer(层)
CCLayer和CCScene有类似的作用,就是作为游戏元素的容器。不同的是,CCScene中通常包含一个一个CCLayer,而CCLayer中通常包含CCSprite、CCMenu、CCLabel等用户可见的节点元素。CCLayer另一个重要的作用就是接收用户的输入事件,包括触摸、重力加速、键盘输入等。
4、CCSprite(精灵)
CCSprite是游戏最重要的组成元素,游戏中的一草一木都是通过CCSprite体现出来的。创建CCSprite有很多种方式,使用起来也非常的灵活,具体参考源代码。
5、CCNode(节点)
CCNode是所有游戏元素的基类(CCScene、CCLayer、CCSprite等),因此这些子类节点共同拥有CCNode所提供的特性。也就是说继承自CCNode的可绘制节点都拥有比如位置、缩放、旋转、是否可见等属性,节点的最基本功能包括:
1)包含其他CCNode对象 -- 可以把任何一个CCNode节点添加到另一个节点上去
2)接收各种事件与回调 -- 如定时器事件
3)执行动作 -- runAction
6、定时器
定时器:以一定的时间间隔,不断的检测游戏事件,从而使游戏发生动态变化的工具
Cocos2d-x提供了两种方式的定时机制:
1)update定时器 -- 该方法每帧都会被触发调用一次。CCNode默认没有开启update方法,可以调用scheduleUpdate()启用定时器,unscheduleUpdate()停止定时器,最主要的还需要重载一下CCNode的update(float)方法,需要定时更新的内容都在update函数中实现。

//开启定时器
this->scheduleUpdate();
//每帧调用update函数,更新里面的内容
void update(float delta)
{
i++;
}

2)schedule定时器 -- 该方法可以让用户设置触发调用的时间间隔。要注意的是,这个时间间隔必须大于2帧的间隔。

//每隔1s调用一次updateGame函数
this->schedule(schedule_selector(HelloWorld::updateGame), 1.0f);
//updateGame函数
void updateGame(float dt)
{
i++;
}

7、onEnter() / onExit()方法
onEnter() -- 节点所在的场景即将显示的时候被调用
onExit() -- 节点所在的场景即将退出时被调用
通常一个继承自CCNode或CCLayer的类中都会有一个init()方法用于初始化这个节点上的数据,init这个方法也是对基类相同函数的重载,需要注意的是,init()这个方法会在onEnter()方法之前被调用。它们主要的区别就是init()方法只会在类初始化的时候被调用一次,而onEnter()方法会随着所在节点的隐藏显示可能会被调用多次。
cocos2d-x基本元素的更多相关文章
- cocos2D(三)---- 第一cocos2d的程序代码分析
在第一讲中已经新建了第一个cocos2d程序,执行效果例如以下: 在这讲中我们来分析下里面的代码,了解cocos2d的工作原理,看看屏幕上的这个"Hello World"是怎样显示 ...
- 三、第一个cocos2d程序的代码分析
http://blog.csdn.net/q199109106q/article/details/8591706 在第一讲中已经新建了第一个cocos2d程序,运行效果如下: 在这讲中我们来分析下里面 ...
- 小尝试一下 cocos2d
好奇 cocos2d 到底是怎样一个框架,正好有个项目需要一个游戏框架,所以稍微了解了一下.小结一下了解到的情况. 基本概念 首先呢,因为 cocos2d 是基于 pyglet 做的,你完全可以直接用 ...
- 采用cocos2d-x lua 制作数字滚动效果样例
require "Cocos2d"require "Cocos2dConstants"local testscene = class("testsce ...
- Cocos2d 利用继承Draw方法制作可显示三维数据(宠物三维等)的三角形显示面板
很久没有写博客了,这段时间比较忙,又是搬家又是做自己的项目,还有太多琐碎的事情缠身,好不容易抽出时间把最近自己做的一些简单例子记录一下. 在我的项目中,我需要一个显示面板来显示游戏中的一个三维数据,例 ...
- HTML基本元素(一)
HTML基本元素(一) 1.换行符 <br /> Ps:br 是换行(Break)的缩写,文本会在这个标签的地方换行. 实例: 第一行<br />第二行 2.段落 <p& ...
- iPhone开发与cocos2d 经验谈
转CSDN jilongliang : 首先,对于一个完全没有mac开发经验,甚至从没摸过苹果系统的开发人员来说,首先就是要熟悉apple的那一套开发框架(含开发环境IDE.开发框架uikit,还有开 ...
- cocos2d学习记录
视频 - http://www.manew.com/forum-105-3.html一个论坛帖 - http://www.zhihu.com/question/21114802官网 - http:// ...
- Android下Cocos2d创建HelloWorld工程
最近在搭建Cocos2d的环境,结果各种问题,两人弄了一天才能搞好一个环境-! -_-!! 避免大家也可能会遇到我这种情况,所以写一个随笔,让大家也了解下如何搭建吧- 1.环境安装准备 下载 tadp ...
- 学生信息管理系统(cocos2d引擎)——数据结构课程设计
老师手把手教了两天半,看了一下模式,加了几个功能就大功告成了!!! 给我的感想就是全都是指针! 添加图片精灵: CCSprite* spBG = CCSprite::create("&qu ...
随机推荐
- MVC Autofac依赖注入
通过Dll实现全部类的属性注入,该演示实例主要通过多层架构中单一的对象方式来演示,没有采取接口的方式, 新建AutoFacHelper类,如下代码: public class AutoFacHelpe ...
- java Queue
队列是一个典型的先进先出(FIFO)的容器,即从容器的一端放入事物,从另一端取出,并且事物放入容器的顺序与取出的顺序是相同的,队列常常被当作一种可靠的对象从程序的某个区域传输到另一个区域,队列在并发编 ...
- linux {..}用法
一.2018-{01..07}* 这个意思是 2018-01* 到2018-07*全部输出出来. 二.echo {a..c} a b c
- 7-9The Morning after Halloween uva1601
这题可以用普通bfs来做 也可以用双向bfs来做(先欠着) 有点类似专题训练的一题 不过那题是找钥匙开门 不过都用了状态压缩 题意: n,m(<=16) 的网络上有t(<=3) ...
- 【LeetCode刷题】SQL-Second Highest Salary 及扩展以及Oracle中的用法
转载于:https://www.cnblogs.com/contixue/p/7057025.html Write a SQL query to get the second highest sala ...
- win7 64位系统pdf预览
装了Win7 64位以后,发现pdf文件不能正常预览,相信很多朋友也遇到了同样的问题,之前搜索的结果有个办法是安装Foxit的插件(相信有不少原来用Adobe Reader的用户从此改用Foxit了) ...
- centos7 静默安装oracle
系统centos7.4 mini 关闭selinux.firewalld 配置主机名: hostnamectl set-hostname --static oracle 之前说oracle不认cen ...
- HTTP协议-MIME类型
每一个 URL 都代表着一个资源对象,而当我们请求一个网页的时候,看似只请求了一个 URI(统一资源标识符),实际上这个网页可能包含多个 URI,例如图片资源的 URI 和视频资源的 URI 等.此时 ...
- 4951: [Wf2017]Money for Nothing 决策单调性 分治
Bzoj4951:决策单调性 分治 国际惯例题面:一句话题面:供应商出货日期为Ei,售价为Pi:用户收购截止日期为Si,收购价格为Gi.我们要求max((Si-Ej)*(Gi-Pj)).显然如果我们把 ...
- [CC-FNCS]Chef and Churu
[CC-FNCS]Chef and Churu 题目大意: 一个长度为\(n(n\le10^5)\)的数列\(A_{1\sim n}\),另有\(n\)个函数,第\(i\)个函数会返回数组中标号在\( ...