cocos2d-x学习笔记(二)基本概念与文本
2013-03-08 10:22
375 查看
在cocos2d-x引擎中,有几个概念:
导演(CCDirector)在cocos2d-x引擎中,导演类是游戏的组织者和领导者,
导演制定规则让游戏内的场景,布景,和人物角色有序的运行
摄像机(CCCamera),每个节点都需要使用摄像机,
当节点发生缩放,旋转,和位置变化时,都需要覆盖摄像机,让这个节点通过摄像机重新渲染。
场景(CCScene)在游戏里,场景就是关卡,关卡有人物和背景构成
布景(CCLayer)从概念上说,布景就是场景里的背景,其实就是层次的概念,
这种概念在kjava时代就有,就是手动的把游戏中的场景分层(也有靠地图编辑器实现这一功能的)
精灵(CCSprite)当然包括英雄、敌人、npc、机关等
动作(CCAction),就是精灵(CCSprite)拥有的动作
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cocos2d-x添加文本的方式有三种(CCLabelTTF、CCLabelAtlas、CCLabelBMFont)
它们可以在层或精灵中添加文字
CCLabelTTF:
参数1:需要显示的文本
参数2:需要显示的字体
参数3:字体的大小
常用函数:setString
CCLabelTTF 每次调用 setString (即改变文字)的时候,一个新的OPENGL纹理将会被创建,
这意味着setString 和创建一个新的标签一样慢。
所以,当你需要频繁的更新它们的时候,尽可能的不用去使用标签对象。
而应该使用CCLabelAtlas或者是CCLabelBMFont
CCLabelAtlas:
参数1:需要显示的文本
参数2:字符的图像文件
参数3:字符的宽度
参数4:字符的高度
参数5:设定图像文件的起始字符
在示例程序(HelloWorld)的左下角显示帧率的数字就是用的CCLabelAtlas,
因为帧率一直在变,使用CCLabelTTF的话效率太低,
因为只是数字所以也犯不上使用CCLabelBMFont 加载那么大的文字图像。
CCLabelBMFont:
参数1:需要显示的文本
参数2:字体坐标文件(*.fnt)
常用函数setScale(float);
此函数没法指定字体的字号,但可以用 scale 属性进行缩放来调整大小。
.fnt文件在windows下可以使用angelCode工具完成
刚接触cocos2d-x,有什么错误的地方,请大家指出,共同学习进步
导演(CCDirector)在cocos2d-x引擎中,导演类是游戏的组织者和领导者,
导演制定规则让游戏内的场景,布景,和人物角色有序的运行
摄像机(CCCamera),每个节点都需要使用摄像机,
当节点发生缩放,旋转,和位置变化时,都需要覆盖摄像机,让这个节点通过摄像机重新渲染。
场景(CCScene)在游戏里,场景就是关卡,关卡有人物和背景构成
布景(CCLayer)从概念上说,布景就是场景里的背景,其实就是层次的概念,
这种概念在kjava时代就有,就是手动的把游戏中的场景分层(也有靠地图编辑器实现这一功能的)
精灵(CCSprite)当然包括英雄、敌人、npc、机关等
动作(CCAction),就是精灵(CCSprite)拥有的动作
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cocos2d-x添加文本的方式有三种(CCLabelTTF、CCLabelAtlas、CCLabelBMFont)
它们可以在层或精灵中添加文字
CCLabelTTF:
CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24); CC_BREAK_IF(! pLabel); // Get window size and place the label upper. CCSize size = CCDirector::sharedDirector()->getWinSize(); pLabel->setPosition(ccp(size.width / 2, size.height - 50)); // Add the label to HelloWorld layer as a child layer. this->addChild(pLabel, 1);
参数1:需要显示的文本
参数2:需要显示的字体
参数3:字体的大小
常用函数:setString
CCLabelTTF 每次调用 setString (即改变文字)的时候,一个新的OPENGL纹理将会被创建,
这意味着setString 和创建一个新的标签一样慢。
所以,当你需要频繁的更新它们的时候,尽可能的不用去使用标签对象。
而应该使用CCLabelAtlas或者是CCLabelBMFont
CCLabelAtlas:
CCLabelAtlas *pAtlas = CCLabelAtlas::create("0123456789","labelatlas.png",16,24,'.'); pAtlas->setPosition(ccp(size.width/2,size.height-80)); this->addChild(pAtlas,1);
参数1:需要显示的文本
参数2:字符的图像文件
参数3:字符的宽度
参数4:字符的高度
参数5:设定图像文件的起始字符
在示例程序(HelloWorld)的左下角显示帧率的数字就是用的CCLabelAtlas,
因为帧率一直在变,使用CCLabelTTF的话效率太低,
因为只是数字所以也犯不上使用CCLabelBMFont 加载那么大的文字图像。
CCLabelBMFont:
CCLabelBMFont *pBMFont = CCLabelBMFont::create("HelloWorld","dmTest.fnt"); pBMFont->setScale(0.8f); pBMFont->setPosition(ccp(size.width/2,size.height-120)); this->addChild(pBMFont,1);
参数1:需要显示的文本
参数2:字体坐标文件(*.fnt)
常用函数setScale(float);
此函数没法指定字体的字号,但可以用 scale 属性进行缩放来调整大小。
.fnt文件在windows下可以使用angelCode工具完成
刚接触cocos2d-x,有什么错误的地方,请大家指出,共同学习进步
相关文章推荐
- [Cocos2d-x for WP8学习笔记] 一些基本概念,建立自己的启动界面
- cocos2d-x学习笔记1——基本概念
- Git版本控制管理学习笔记3-基本的Git概念
- 【Cocos2d-X开发学习笔记】第08期:渲染框架之文本类的使用
- c#线程学习笔记一---基本概念
- timequest静态时序分析学习笔记——基本概念
- kafka学习笔记——基本概念与安装
- Java TCP/IP协议学习笔记:基本概念
- 【卷土重来之C#学习笔记】(三) 类的基本概念
- IOS学习笔记(八)之UIActivityIndicatorView(活动指示器视图)的基本概念和使用方法
- 计算机网络学习笔记(一) 计算机网络基本概念
- 【Cocos2d-X开发学习笔记】第14期:动作类之基本动作的使用(下)
- 孙鑫VC学习笔记:第十四讲 网络的基本概念
- Cocos2d-x学习笔记(3)cocos2d-x的坐标系相关概念的几点使用说明
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.10)
- 计算机网络学习笔记--基本概念
- 算法设计和复杂性理论学习笔记_1(基本概念)
- javascript高级程序设计第三版 第3章 基本概念 学习笔记
- JavaScript 高级程序设计——第三章基本概念 学习笔记
- Docker 学习笔记【1】Docker 相关概念,基本操作