cocos2d-x中的一些概念
来源:互联网 发布:别哭妈妈 知乎 编辑:程序博客网 时间:2024/06/05 18:47
cocos2d-x中有很多概念,下面就对这些概念做一下总结:
导演类
导演类CCDirector是cocos2d-x中一个非常重要的类,它是一个抽象类,用于管理场景对象,采用单例设计模式,在整个工程中只有一个实例对象。由于是单例模式能够保存一致的配置信息,便于管理场景对象
主要完成的工作如下:
初始化游戏和销毁游戏
管理调度场景
调整设置openGL信息
获取设置游戏的相关信息
CCDirector * pDirector = CCDirector::sharedDirector(); //得到一个导演类,采用的是单例的模式获取
CCDirector需要绑定一个OpenGL视图,将导演类所管理的场景绘制到绑定的OpenGL视图上。x引擎提供了CCEGLView,同样采用了单例模式。先拿到一个CCEGLView,然后将导演类和CCEGLView绑定。
CCEGLView *pView = CCEGLView::sharedOpenGLView(); pDirector->setOpenGLView(pView);
pDirector->setDisplayStats(true); //开启FPS显示功能pDirector->setAnimationInterval(1.0/60); //设置每秒钟的帧率CCSize size = pDirector->getWinSize(); //获取屏幕大小
场景类:
Scene场景也是cocos2dx中必不可少的元素,游戏中通常我们需要构建不同的场景(至少一个),游戏里关卡、版块的切换也就是一个一个场景的切换,就像在电影中变换舞台和场地一样。同时场景是层的容器,包含了所有需要显示的游戏元素。
一些函数的用法
// 运行一个场景 void runWithScene(CCScene *pScene); // 把当前场景压入栈中,使其进入等待状态 void pushScene(CCScene *pScene); // 从栈顶弹出一个场景对象 void popScene(void); // 从栈中弹出所有场景对象,仅剩下根场景对象 void popToRootScene(void); // 替换成新的场景对象 void replaceScene(CCScene *pScene); // 结束执行,释放当前资源 void end(void); // 暂停运行的场景 void pause(void); // 恢复运行的场景 void resume(void); // 绘制场景内容 void drawScene(void);
层:
Layer是处理玩家事件响应的Node子类。与场景不同,层通常包含的是直接在屏幕上呈现的内容,并且可以接受用户的输入事件,包括触摸,加速度计和键盘输入等。例如横屏打斗游戏,人物向前行走的过程中,背景会不断地滚动,但是游戏的控制按钮永远在固定的位置不变。要向场景添加层,我们可以使用addChild方法。
addChild( Node * child ) //child是节点,通常的节点就是层addChild( Node *child, int zOrder ) //zOrder指层与层之间的顺序,addChild( Node *child, int zOrder, int tag ) //tag是元素的表示号码,给子节点设置了tag值,就可以在父节点中通过tag值找到子节点
auto layer = LayerColor::create(Color4B(0, 128, 128, 255)); layer->setContentSize(CCSizeMake(120, 80)); layer->setPosition(Point(50, 50)); addChild(layer, 10); auto layer1 = LayerColor::create(Color4B(128, 0, 128, 255)); layer1->setContentSize(CCSizeMake(120, 80)); layer1->setPosition(Point(100, 80)); addChild(layer1, 20);
精灵:
Cocos2d中的精灵和其他游戏引擎中的精灵相似,它可以移动,旋转,缩放,执行动画,并接受其他转换。Cocos2dx的Sprite由Texure,frame和animation组成,由openes负责渲染。
创建精灵:
auto sprite = Sprite::create("HelloWorld.png"); this->addChild(sprite,0); //直接创建
auto sprite1 = Sprite::createWithTexture(TextureCache::getInstance()->addImage("HelloWorld.png")); this->addChild(sprite1, 0); //使用文理来创建精灵
auto sprite2=Sprite::createWithSpriteFrameName("HelloWorld.png"); this->addChild(sprite2, 0); //用精灵帧来创建精灵
- cocos2d-x中的一些概念
- cocos2d-x一些概念
- cocos2d-x初学笔记02:一些概念
- cocos2d-x一些核心概念介绍
- cocos2d-x中的一些属性
- Cocos2d-x教程(1)-让我们来学习一些传说中的概念
- Cocos2d-x教程第(1)讲-让我们来学习一些传说中的概念
- Cocos2d-x教程(1)-让我们来学习一些传说中的概念
- cocos2d-x中的几个重要概念
- 第二章:Cocos2d-x中的基础概念
- Cocos2d-x中的基础概念学习笔记
- Cocos2d-x程序中的一些小细节
- cocos2d-x 中的一些数学函数
- cocos2d-x 一些笔记
- Vert.x一些概念
- cocos2d-x游戏开发中的一些个人总结 。
- Cocos2d-x制作微信打飞机游戏中的一些技术总结
- cocos2d-x中的随机数
- A+B for Matrices
- java.io.IOException: Cannot run program "/etc/hadoop/conf.cloudera.yarn/topology.py" (in directory "
- rxjava
- 理解WebKit和Chromium: 调试Android系统上的Chromium
- JsonCpp如何判断是否有某个KEY
- cocos2d-x中的一些概念
- JavaScript和客户端编程语言C++,java,objective-C的三大不同
- C 读写二进制文件
- mysql 错误
- 打开MySQL数据库远程访问的权限
- linux解压文件以及修改文件权限等常用命令
- 个人对于JAVA反射机制的理解
- remove掉div层后光标无法聚焦
- H.264句法和语法总结(二)NAL层句法