在Cocos2d-x中能够使用的字符串constchar*、std::string和cocos2d::__String等,其中const char*是C风格的字符串,std::string是C++风格的字符串,它封装了const char*。cocos2d::__String才是Cocos2d-x引擎提供的字符串类,这些字符串都可以互相转换,它们会在不同的场景下使用,具体使用那个可以看具体的API。
使用const char*和std::string
我们在C++中两种类型都可以使用,但是std::string是一个类,具体面向对象的优点,而const char*没有。我们是下面代码初始化std::string对象。
- std::string name = "tony";
- td::string name = std::string("tony");
我们不需要使用指针,也不需要关心内存释放问题,在作用域超出之后std::string对象别释放。我们可以通过下面的语句把std::string转化为const char*类型。
- const char* cstring = name.c_str();
我们可以使用std::string指针类型,但是要配合使用new关键字开辟内存空间,然后不再使用的时候要通过delete释放内存。
- std::string* name =newstd::string("tony");
- … …
- delete name;
使用std::string指针对象时候,我们可以通过下面的代码转化为const char*类型。
- const char* cstring = name->c_str();
const char* 和std::string的在Cocos2d-x中还有很多,我们会在后面的学习中给大家介绍。
使用cocos2d::__String
cocos2d::__String是Cocos2d-x通过的一个字符串类,它的设计模拟了Objective-C的NSString类,这由于Cocos2d-x源自于Cocos2d-iphone,cocos2d::__String也是基于Unicode双字节编码。
cocos2d::__String的类图如下图所示,
创建它的主要的静态create函数如下:
- static__String * create (const std::string &str)
- static__String * createWithFormat (const char *format,...)
使用create函数的实例代码如下:
- __String* name= __String::create("Hi,Tony");
- int num=123;
- __String* ns = __String::createWithFormat("%d",num);
cocos2d::__String还提供了一些数据类型之间的转换函数。例如:cocos2d::__String转换为const char*类型,这种转换用的比较多的,示例代码如下:
- __String* name= __String::create("Hi,Tony");
- const char *cstring=name->getCString();
const char*转换为cocos2d::__String类型,示例代码如下:
- const char* cstring = "Hi,Tony";
- __String*ns=__String::createWithFormat("%s",cstring);
std::string转换为cocos2d::__String类型,示例代码如下:
- std::string string = "Hi,Tony";
- __String*ns=__String::createWithFormat("%s",string.c_str());
cocos2d::__String转换为int类型,示例代码如下:
- int num = 123;
- __String* ns =__String::createWithFormat("%d",num);
- int num2 = ns->intValue();
还有很多函数我们会在以后的学习再给大家介绍。
本书交流讨论网站:http://www.cocoagame.net
《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:
京东:http://item.jd.com/11584534.html
当当:http://product.dangdang.com/23606265.html
互动出版网:http://product.china-pub.com/3770734
《Cocos2d-x实战 C++卷》源码及样章下载地址:
源码下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1
样章下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1
相关推荐
该资源主要用于cocos2d-x中Value与json字符串的相互转换,提供从json文件读取为cocos2d::Value,cocos2d::Value写入到文件,cocos2d::Value转换为json字符串,json字符串转换为cocos2d::Value。json字符串转换成cocos...
在cocos2d-X这个强大的2D游戏开发框架中,字符串处理是不可或缺的一部分。`CCString`类是cocos2d-X提供的一种用于处理文本数据的工具,它封装了C++标准库中的`std::string`,使得在游戏开发过程中处理字符串变得更加...
总结来说,要在Cocos2d-x中绘制多种颜色的字符串,你需要掌握自定义绘制、DrawNode的使用、精灵和批次节点的管理,以及Cocos2d-x的相关API。同时,根据项目需求和性能考虑,选择合适的实现方式是非常重要的。
在Cocos2d-x中,Lua被用作游戏逻辑和控制层的语言,可以快速实现游戏逻辑和交互。 2. Cocos2d-x与Lua的集成:Cocos2d-x提供了一个名为Cocos2dx-Lua的模块,使得开发者可以直接使用Lua编写游戏代码。这个模块包含了...
2.7. **使用iconv库**:在Cocos2d-x中,有时需要处理字符编码问题,特别是当涉及到中文字符时。iconv是一个用于字符集转换的库,可以被Cocos2d-x项目所用。要使用iconv,你需要确保在你的项目中正确引用该库,并根据...
2. **偏好设置(Prefrences)**:Cocos2D-X中的`UserDefault`类提供了类似手机系统偏好设置的功能,可以方便地存储键值对。例如,你可以用`UserDefault::getInstance()->setIntegerForKey()`存储整数,`UserDefault::...
通过分析和运行这个示例,开发者可以更深入地理解cocos2d-x中的网络通信和文件操作。 总的来说,cocos2d-x的联网功能强大且易于使用,结合CCHttpClient和文件操作接口,开发者能够轻松实现与服务器的交互,进行数据...
本实例源码着重解决的就是如何在Cocos2d-x中正确显示中文字符的问题。 首先,我们要理解为什么在Cocos2d-x中显示中文字符会成为一个挑战。Cocos2d-x基于C++,而默认的编码方式可能是ASCII或UTF-8,这与中文字符常用...
在Cocos2d-x中,你需要在适当的地方(如初始化函数或游戏场景加载时)打开SQLite数据库。这可以通过调用`sqlite3_open()`函数实现,传入数据库文件路径作为参数。如果数据库文件不存在,SQLite会自动创建。 3. **...
在"Cocos2d-x之Lua核心编程"的配套代码中,我们可以深入学习如何结合Cocos2d-x和Lua来构建游戏或应用的核心功能。 1. **Lua与Cocos2d-x的集成**:Cocos2d-x提供了Lua绑定,使得开发者可以使用Lua脚本来控制游戏逻辑...
cocos2d-x即时战斗类游戏《战三国》源码 说明: 绚丽的游戏画面,酷炫的游戏场景 ☆让你体验统领千军万马的感觉 群雄逐鹿 热血三国!12位各具特色的人物和32种华丽震撼的技能带给玩家炫彩的视觉感受与轰动的战争体验!...
**CCControl**是Cocos2d-x中的一个类,它是所有控制元件(如按钮、开关、滑块等)的基类。这个类提供了一套完整的事件处理机制,使得开发者能够方便地创建和管理游戏中的交互元素。CCControl的主要特性包括触控事件...
在Cocos2d-x中使用Lua,可以显著提升开发效率,降低项目维护难度。 在Cocos2d-x中,Lua与C++的交互主要依赖于tolua++这个工具,它能够将Lua脚本编译为C++可调用的函数,使得开发者可以在Lua中编写游戏逻辑,而在C++...
在Cocos2d-x中,我们通常会用到如cocos2d::network::HttpClient或第三方库如libcurl来实现HTTP请求,或者使用WebSocket库如libwebsockets或SimpleWebSocketServer来处理长连接通信。HTTP主要用于发送GET和POST请求,...
2. **文本节点**:在cocos2d-x中,我们通常使用`CCLabelTTF`或`CCLabelBMFont`来显示文本。对于中文,建议使用`CCLabelTTF`,因为它对Unicode字符支持更好。创建`CCLabelTTF`时,需指定字体名称、大小、对齐方式等...
以下是一些关键步骤来确保中文在cocos2d-x中正常显示: 1. **设置正确的编码**:确保你的项目源代码、资源文件以及字符串文本使用UTF-8编码。这是国际化的标准,能够支持多种语言,包括中文。检查文本文件(如配置...
Cocos2d-x学习文档win32显示中文乱码解决方法 在 Cocos2d-x 中,win32 平台上显示中文时可能会...解决 Cocos2d-x 中 win32 平台上显示中文乱码问题可以使用函数转换编码或从外部文件读取 UTF-8 编码字符串两种方法。
第四篇设计与优化,即第18章~第20章,内容包括Cocos2d-x中的常用设计模式、Cocos2d-x中的内存管理和性能优化。 第五篇平台移植,即第21章~第23章,内容包括从Win32到Android平台的移植、从Win32到WindowsPhone8...
在Cocos2d-x中访问Lua脚本中的变量,主要依赖于`ccscript`模块。你可以通过以下步骤进行操作: 1. **加载Lua脚本**:使用`cocos2d::CCScriptEngineManager::sharedManager()->getScriptEngine()->runScript(...
- 在学习过程中,推荐采取交叉学习的方式,即同时进行C++和Cocos2d-x的学习,这样可以使两者相互促进,提高学习效率。 - 完成基础学习后,通过实战项目进一步巩固所学知识,并学会如何将知识转化为具体的产品。 ###...