cocos2d-x核心概念(二)——字符串,标签和菜单
来源:互联网 发布:打印机合格证的软件 编辑:程序博客网 时间:2024/04/30 07:44
cocos2dx-x核心概念(二)————字符串,标签和菜单
一,cocos2d-x中的字符串
在cocos2d-x中可用的字符串有三种:const char * 和 std::string 和 cocos2d::_String,其中,const char * 是C语言风格的字符串,std::string是C++风格的字符串,它封装了const char * ,cocos2d::_String才是Cocos2d-x提供的字符串类。
(一)使用const char * 和 std::string
std::string 是一个类,具有面对对象的有点,不需要使用指针,不需要关心内存释放问题,在作用域超出之后,std::string 对象被释放。而const char * 没有这些特性。
std::string name = "oscar";std::string name = std::string("oscar");
const char * cstring = name.c_str()
std::string * name = new std::string("oscar");...delete name;
const char * cstring = name->c_str();
cocos2d::_String 基于Unicode双字节编码,创建它的静态函数create如下
(1)static _String * create(const std::string & str);
(2)static _String * createWithFormat(const char * format,...);
代码实例如下:
_String* name = _String::create("Hi,Oscar");
int num = 123;_String * ns = _String:: createWithFormat("%d",num);
_String * name = _String::create("Hi,Ocar");
const char * cstring = name->getCString();
const char* 转换为 cocos2d::_String
const char * cstring = "Hi,Oscar";
_String * ns = _String::createWithFormat("%s",cstring);
std::string 转换为 cocos2d::_String
std::string string = "Hi,oscar";
_String *ns = _String::createWithFormat("%s",string.c_str());
cocos2d::_String 转换为 int 类型
int num =123;
_String *ns = _String::createWithFormat("%d",num);
int num2 = ns->intValue();
cocos2dx中的标签类有四种:LabelTTF,LabelAtlas和LabelBMFont,Label。
(一)LabelTTF使用系统类字体,最简单的标签:
auto label = LabelTTF::create("Hello World","Arial",64);
(二)LabelAtlas是图片集标签,文字是从一个图片集中取出的,需要加载图片集文件,比LabelTTF快很多:
auto label = LabelAtlas::create("Hello World","fonts/fonts.png",48,66,' ');
(三)LabelBMFont是位图字体标签,需要添加字体文件,包括一个图片集(.png)和一个字符坐标文件(.fnt),每个字符的宽度都是可变的。
auto label = LabelBMFont::create("Hello World","fonts/BMFont.fnt");
(四)Label
cocos2d-x 3.x推出了新的标签类Label,它使用FreeType,渲染速度更快,提供了描边和阴影等特性。
(1)创建系统字体标签对象
static Label* createWithSystemFont(const std::string & text,const std::string & font,
float fontSize,
const Size & dimensions =
Size::ZERO
,TextHAlignment hAlignment =
TextHAlignment::LEFT
,TextVAlignment vAlignment =
TextVAlignment::TOP
)
实例:auto Label1 = Label::createWithSystemFont("Hello World1","Arial",36);
(2)创建TTF字体标签对象
const std::string & text,
TextHAlignment hAlignment =
TextHAlignment::LEFT
,int maxLineWidth =
0
)
实例:auto Label2 = Label::createWithTTF("Hello World2","fonts/fonts.ttf",36);
(3)创建位图字体标签对象
static Label* createWithBMFont(const std::string & bmfontPath,const std::string & text,
const TextHAlignment & hAlignment =
TextHAlignment::LEFT
,int maxLineWidth =
0
,const Vec2 & imageOffset =
Vec2::ZERO
)
实例:auto Label3 = Label::createWithBMFont("fonts/fonts.fnt","Hello World3");
const ccMenuCallback & callback
)
static
基于给定的字符串,字体配置及回调创建菜单项。
- 参数
- text要显示的文本。callback菜单项被激活时调用的回调。
- 返回
- 一个初始化的MenuItemFont菜单项,该节点会自动被标记为“autorelease”(自动释放).
const std::string & charMapFilePath,
int itemWidth,
int itemHeight,
char startingCharacter,
const ccMenuCallback & callback
)
static
使用给定的字符串、字符集配置及回调创建菜单项。
- 参数
- text要显示的文本。charMapFilePath字符集字体的文件路径。itemWidth字符的宽度。itemHeight字符的高度。startingCharacter起始字符。callback菜单项被激活时调用的回调。
- 返回
- 一个初始化的文本菜单项,该节点会自动被标记为“autorelease”(自动释放).
Node * selectedNode,
Node * disabledNode,
const ccMenuCallback & callback
)
static
基于给定的不同状态下显示的节点及回调创建菜单项。
- 参数
- normalNode正常状态显示的节点。selectedNode选中状态显示的节点。disabledNode禁用状态显示的节点。callback菜单项被激活时调用的回调。
- 返回
- 一个初始化的MenuItemSprite菜单项,该节点会自动被标记为“autorelease”(自动释放).
const std::string & selectedImage,
const std::string & disabledImage,
const ccMenuCallback & callback
)
static
基于给定的不同状态下的图片资源及回调创建菜单项。
- 参数
- normalImage正常状态显示的图片路径。selectedImage选中状态显示的图片路径。disabledImage禁用状态显示的图片路径。callback菜单项被激活时调用的回调。
- 返回
- 一个初始化的图片菜单项,该节点会自动被标记为“autorelease”(自动释放).
createWithCallback(const ccMenuCallback & callback,
const Vector< MenuItem * > & menuItems
)
static
基于给定的回调及菜单项数组创建菜单项触发器。
- 参数
- callback菜单项被激活时调用的回调。menuItems菜单项数组。
- 返回
- 一个初始化的触发器菜单项,该节点会自动被标记为“autorelease”(自动释放).
- cocos2d-x核心概念(二)——字符串,标签和菜单
- cocos2d-x核心概念(一)——简述
- cocos2d-x核心概念(四)——动作,动画
- cocos2d-x核心概念(五)——事件
- Cocos2d-x 3.X里的坑(1)——标签菜单项MenuItemLabel和精灵菜单项MenuItemSprite回调不响应
- cocos2d-x核心概念(三)——精灵,场景与层
- cocos2d-x-3.3-006-核心概念和相关类-导演
- cocos2d-x-3.3-007-核心概念和相关类-节点
- cocos2d-x-3.3-008-核心概念和相关类-场景
- cocos2d-x-3.3-009-核心概念和相关类-层
- cocos2d-x-3.3-010-核心概念和相关类-精灵
- cocos2d-x ——菜单层(CCMenuItemFont)二
- cocos2d-x ——菜单层(CCMenuItemFont)二
- cocos2d-x一些核心概念介绍
- 【Cocos2d-x】开发基础-Cocos2d-x核心概念
- Cocos2d—X游戏开发之CCToggle(菜单标签切换)CCControlSwitch(开关切换)(十二)
- cocos2d-x-lua:API-标签,菜单项和菜单和Scene,Layer
- cocos2D-x——核心类备忘
- Javascript如何创建一个新的实例(指针)
- CSS 基础教程目录
- 03python_function
- 关于http请求头host字段中的port
- Activity中获取view的高度和宽度为0的原因以及解决方案
- cocos2d-x核心概念(二)——字符串,标签和菜单
- 上传文件的服务
- 52nod 1012最小公倍数LCM
- 彻底理解ThreadLocal
- iOS事务的基本概念
- Android查询 每个进程的权限
- win7 iis 配置PHP5.3.27实践记录
- windows下使用cpanm进行模块安装
- JavaScript 基础教程目录