展会信息港展会大全

cocos2d-x学习笔记---基本概念与文本
来源:互联网   发布日期:2015-09-27 08:01:12   浏览:2642次  

导读:在cocos2d-x引擎中,有几个概念:导演(CCDirector)在cocos2d-x引擎中,导演类是游戏的组织者和领导者,导演制定规则让游戏内的场景,布景,和人物角色有序的运行摄像机...

在cocos2d-x引擎中,有几个概念:

导演(CCDirector)在cocos2d-x引擎中,导演类是游戏的组织者和领导者,

导演制定规则让游戏内的场景,布景,和人物角色有序的运行

摄像机(CCCamera),每个节点都需要使用摄像机,

当节点发生缩放,旋转,和位置变化时,都需要覆盖摄像机,让这个节点通过摄像机重新渲染。

场景(CCScene)在游戏里,场景就是关卡,关卡有人物和背景构成

布景(CCLayer)从概念上说,布景就是场景里的背景,其实就是层次的概念,

这种概念在kjava时代就有,就是手动的把游戏中的场景分层(也有靠地图编辑器实现这一功能的)

精灵(CCSprite)当然包括英雄、敌人、npc、机关等

动作(CCAction),就是精灵(CCSprite)拥有的动作

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

cocos2d-x添加文本的方式有三种(CCLabelTTF、CCLabelAtlas、CCLabelBMFont)

它们可以在层或精灵中添加文字www.2cto.com

CCLabelTTF:

[cpp]

<span style="font-size:12px;">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);</span>

参数1:需要显示的文本

参数2:需要显示的字体

参数3:字体的大小

常用函数:setString

CCLabelTTF 每次调用 setString (即改变文字)的时候,一个新的OPENGL纹理将会被创建,

这意味着setString 和创建一个新的标签一样慢。

所以,当你需要频繁的更新它们的时候,尽可能的不用去使用标签对象。

而应该使用CCLabelAtlas或者是CCLabelBMFont

CCLabelAtlas:

[cpp]

<span style="font-size:12px;">CCLabelAtlas *pAtlas = CCLabelAtlas::create("0123456789","labelatlas.png",16,24,'.');

pAtlas->setPosition(ccp(size.width/2,size.height-80));

this->addChild(pAtlas,1);</span>

参数1:需要显示的文本

参数2:字符的图像文件

参数3:字符的宽度

参数4:字符的高度

参数5:设定图像文件的起始字符

在示例程序(HelloWorld)的左下角显示帧率的数字就是用的CCLabelAtlas,

因为帧率一直在变,使用CCLabelTTF的话效率太低,

因为只是数字所以也犯不上使用CCLabelBMFont 加载那么大的文字图像。

CCLabelBMFont:

[cpp]

<span style="font-size:12px;">CCLabelBMFont *pBMFont = CCLabelBMFont::create("HelloWorld","dmTest.fnt");

pBMFont->setScale(0.8f);

pBMFont->setPosition(ccp(size.width/2,size.height-120));

this->addChild(pBMFont,1);</span><span style="font-size:12px;">

</span>

参数1:需要显示的文本

参数2:字体坐标文件(*.fnt)

常用函数setScale(float);

此函数没法指定字体的字号,但可以用 scale 属性进行缩放来调整大校

.fnt文件在windows下可以使用angelCode工具完成

赞助本站

人工智能实验室

相关热词: cocos2d 游戏开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港