`
阅读更多

Cocos2d-x中能够使用的字符串constchar*std::stringcocos2d::__String等,其中const char*C风格的字符串,std::stringC++风格的字符串,它封装了const char*cocos2d::__String才是Cocos2d-x引擎提供的字符串类,这些字符串都可以互相转换,它们会在不同的场景下使用,具体使用那个可以看具体的API

使用const char*std::string

我们在C++中两种类型都可以使用,但是std::string是一个类,具体面向对象的优点,而const char*没有。我们是下面代码初始化std::string对象。

        

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. std::string name = "tony";  
  2. td::string name = std::string("tony");  

 

 

我们不需要使用指针,也不需要关心内存释放问题,在作用域超出之后std::string对象别释放。我们可以通过下面的语句把std::string转化为const char*类型。

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. const char* cstring = name.c_str();  

 

 

我们可以使用std::string指针类型,但是要配合使用new关键字开辟内存空间,然后不再使用的时候要通过delete释放内存。

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. std::string* name =newstd::string("tony");  
  2. … …  
  3. delete name;  

 

 

使用std::string指针对象时候,我们可以通过下面的代码转化为const char*类型。

   

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. const char* cstring = name->c_str();  

 

 

const char* std::string的在Cocos2d-x中还有很多,我们会在后面的学习中给大家介绍。

使用cocos2d::__String

cocos2d::__StringCocos2d-x通过的一个字符串类,它的设计模拟了Objective-CNSString类,这由于Cocos2d-x源自于Cocos2d-iphone,cocos2d::__String也是基于Unicode双字节编码。

cocos2d::__String的类图如下图所示,


创建它的主要的静态create函数如下:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. static__String * create (const std::string &str)  
  2. static__String * createWithFormat (const char *format,...)  

 

使用create函数的实例代码如下:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. __String* name=  __String::create("Hi,Tony");  
  2. int num=123;  
  3. __String* ns = __String::createWithFormat("%d",num);  
  4.    

 

 

cocos2d::__String还提供了一些数据类型之间的转换函数。例如:cocos2d::__String转换为const char*类型,这种转换用的比较多的,示例代码如下:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. __String* name=  __String::create("Hi,Tony");  
  2. const char *cstring=name->getCString();  

 

 

const char*转换为cocos2d::__String类型,示例代码如下:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. const char* cstring = "Hi,Tony";  
  2. __String*ns=__String::createWithFormat("%s",cstring);  

 

 

std::string转换为cocos2d::__String类型,示例代码如下:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. std::string string = "Hi,Tony";     
  2. __String*ns=__String::createWithFormat("%s",string.c_str());  

 

 

cocos2d::__String转换为int类型,示例代码如下:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. int num = 123;  
  2. __String* ns =__String::createWithFormat("%d",num);  
  3. int num2 = ns->intValue();  

 

 

还有很多函数我们会在以后的学习再给大家介绍。

 

 

更多内容请关注最新Cocos图书《Cocos2d-x实战 C++卷》

本书交流讨论网站:http://www.cocoagame.net

更多精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com
欢迎加入Cocos2d-x技术讨论群:257760386


《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:

京东:http://item.jd.com/11584534.html

亚马逊:http://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU

当当: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

欢迎关注智捷iOS课堂微信公共平台

分享到:
评论

相关推荐

    cocos2d-x json字符串与cocos2d::Value转换工具

    该资源主要用于cocos2d-x中Value与json字符串的相互转换,提供从json文件读取为cocos2d::Value,cocos2d::Value写入到文件,cocos2d::Value转换为json字符串,json字符串转换为cocos2d::Value。json字符串转换成cocos...

    cocos2d-X 字符串

    在cocos2d-X这个强大的2D游戏开发框架中,字符串处理是不可或缺的一部分。`CCString`类是cocos2d-X提供的一种用于处理文本数据的工具,它封装了C++标准库中的`std::string`,使得在游戏开发过程中处理字符串变得更加...

    cocos2d-x绘制多种颜色字符串

    总结来说,要在Cocos2d-x中绘制多种颜色的字符串,你需要掌握自定义绘制、DrawNode的使用、精灵和批次节点的管理,以及Cocos2d-x的相关API。同时,根据项目需求和性能考虑,选择合适的实现方式是非常重要的。

    Cocos2d-x之Lua核心编程 ,刘克男,杨雍著 ,P227

    在Cocos2d-x中,Lua被用作游戏逻辑和控制层的语言,可以快速实现游戏逻辑和交互。 2. Cocos2d-x与Lua的集成:Cocos2d-x提供了一个名为Cocos2dx-Lua的模块,使得开发者可以直接使用Lua编写游戏代码。这个模块包含了...

    Android Cocos2d-x 环境配置

    2.7. **使用iconv库**:在Cocos2d-x中,有时需要处理字符编码问题,特别是当涉及到中文字符时。iconv是一个用于字符集转换的库,可以被Cocos2d-x项目所用。要使用iconv,你需要确保在你的项目中正确引用该库,并根据...

    Cocos2D-X开发学习笔记-游戏数据存储项目实例(上)

    2. **偏好设置(Prefrences)**:Cocos2D-X中的`UserDefault`类提供了类似手机系统偏好设置的功能,可以方便地存储键值对。例如,你可以用`UserDefault::getInstance()->setIntegerForKey()`存储整数,`UserDefault::...

    cocos2d-x联网

    通过分析和运行这个示例,开发者可以更深入地理解cocos2d-x中的网络通信和文件操作。 总的来说,cocos2d-x的联网功能强大且易于使用,结合CCHttpClient和文件操作接口,开发者能够轻松实现与服务器的交互,进行数据...

    cocos2d-x 显示中文字符 实例源码

    本实例源码着重解决的就是如何在Cocos2d-x中正确显示中文字符的问题。 首先,我们要理解为什么在Cocos2d-x中显示中文字符会成为一个挑战。Cocos2d-x基于C++,而默认的编码方式可能是ASCII或UTF-8,这与中文字符常用...

    cocos2d-x数据库的使用demo

    在Cocos2d-x中,你需要在适当的地方(如初始化函数或游戏场景加载时)打开SQLite数据库。这可以通过调用`sqlite3_open()`函数实现,传入数据库文件路径作为参数。如果数据库文件不存在,SQLite会自动创建。 3. **...

    Cocos2d-x之Lua核心编程 配套代码

    在"Cocos2d-x之Lua核心编程"的配套代码中,我们可以深入学习如何结合Cocos2d-x和Lua来构建游戏或应用的核心功能。 1. **Lua与Cocos2d-x的集成**:Cocos2d-x提供了Lua绑定,使得开发者可以使用Lua脚本来控制游戏逻辑...

    cocos2d-x即时战斗类游戏《战三国》源码

    cocos2d-x即时战斗类游戏《战三国》源码 说明: 绚丽的游戏画面,酷炫的游戏场景 ☆让你体验统领千军万马的感觉 群雄逐鹿 热血三国!12位各具特色的人物和32种华丽震撼的技能带给玩家炫彩的视觉感受与轰动的战争体验!...

    cocos2d-x 的CCControl控件的示例

    **CCControl**是Cocos2d-x中的一个类,它是所有控制元件(如按钮、开关、滑块等)的基类。这个类提供了一套完整的事件处理机制,使得开发者能够方便地创建和管理游戏中的交互元素。CCControl的主要特性包括触控事件...

    Cocos2d-x之Lua核心编程_配套代码

    在Cocos2d-x中使用Lua,可以显著提升开发效率,降低项目维护难度。 在Cocos2d-x中,Lua与C++的交互主要依赖于tolua++这个工具,它能够将Lua脚本编译为C++可调用的函数,使得开发者可以在Lua中编写游戏逻辑,而在C++...

    cocos2d-x 聊天小程序1 数据的简单数据通信

    在Cocos2d-x中,我们通常会用到如cocos2d::network::HttpClient或第三方库如libcurl来实现HTTP请求,或者使用WebSocket库如libwebsockets或SimpleWebSocketServer来处理长连接通信。HTTP主要用于发送GET和POST请求,...

    cocos2d-x中文显示

    2. **文本节点**:在cocos2d-x中,我们通常使用`CCLabelTTF`或`CCLabelBMFont`来显示文本。对于中文,建议使用`CCLabelTTF`,因为它对Unicode字符支持更好。创建`CCLabelTTF`时,需指定字体名称、大小、对齐方式等...

    cocos2d-x 显示中文

    以下是一些关键步骤来确保中文在cocos2d-x中正常显示: 1. **设置正确的编码**:确保你的项目源代码、资源文件以及字符串文本使用UTF-8编码。这是国际化的标准,能够支持多种语言,包括中文。检查文本文件(如配置...

    Cocos2d-x学习文档win32显示中文乱码解决方法

    Cocos2d-x学习文档win32显示中文乱码解决方法 在 Cocos2d-x 中,win32 平台上显示中文时可能会...解决 Cocos2d-x 中 win32 平台上显示中文乱码问题可以使用函数转换编码或从外部文件读取 UTF-8 编码字符串两种方法。

    Cocos2d-x实战 C++卷,完整扫描版

    第四篇设计与优化,即第18章~第20章,内容包括Cocos2d-x中的常用设计模式、Cocos2d-x中的内存管理和性能优化。 第五篇平台移植,即第21章~第23章,内容包括从Win32到Android平台的移植、从Win32到WindowsPhone8...

    Cocos2d-x 如何使用Lua脚本

    在Cocos2d-x中访问Lua脚本中的变量,主要依赖于`ccscript`模块。你可以通过以下步骤进行操作: 1. **加载Lua脚本**:使用`cocos2d::CCScriptEngineManager::sharedManager()->getScriptEngine()->runScript(...

    Cocos2d-x游戏开发工程师职业学习路线图-51CTO学院.docx编程资料

    - 在学习过程中,推荐采取交叉学习的方式,即同时进行C++和Cocos2d-x的学习,这样可以使两者相互促进,提高学习效率。 - 完成基础学习后,通过实战项目进一步巩固所学知识,并学会如何将知识转化为具体的产品。 ###...

Global site tag (gtag.js) - Google Analytics