cocos2d-x学习札记(二)基本概念与文本

cocos2d-x学习笔记(二)基本概念与文本

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

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

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

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

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

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

cocos2d-x学习札记(二)基本概念与文本

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

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:设定图像文件的起始字符

cocos2d-x学习札记(二)基本概念与文本

在示例程序(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,有什么错误的地方,请大家指出,共同学习进步