cocos2dx 字符串拼接
字符串拼接示例
在 Cocos2d-x 中,我们可以使用 C 语言的字符串处理函数进行字符串拼接。以下是一个示例代码,用于拼接文件名并加载精灵帧:
for (int i = 1; i < 5; i++) {
// 定义一个长度为 3 的字符数组,用于存储数字转换后的字符串
char str[3];
// 将整数 i 转换为字符串并存储到 str 中
sprintf(str, "%d", i);
// 定义一个长度为 30 的字符数组,用于存储完整的文件名
char totalFilename[30];
// 将 "game_loading" 复制到 totalFilename 中
strcpy(totalFilename, "game_loading");
// 定义文件后缀
const char* suffix = ".png";
// 将 str 追加到 totalFilename 后面
strcat(totalFilename, str);
// 将后缀追加到 totalFilename 后面
strcat(totalFilename, suffix);
// 打印完整的文件名
log(totalFilename);
// 设置动画的每帧延迟时间
animation->setDelayPerUnit(0.2f);
// 打印字符类型占的字节数
log("%d", sizeof(str[0]));
char t = 'q';
log("char %d", sizeof(t));
float a = 10.30;
// 打印 float 类型指针占的字节数
log("t %d", sizeof(&a));
// 从精灵帧缓存中获取指定名称的精灵帧,并添加到动画中
animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(totalFilename));
}
读取 XML 文件
在 Cocos2d-x 中,我们可以读取 XML 文件中的数据。以下是读取 chineseString.xml 文件的示例代码:
// 从指定文件创建字典
Dictionary* dic = Dictionary::createWithContentsOfFile("chineseString.xml");
// 从字典中获取键为 "startGame" 的对象,并转换为 String 类型
String* strchinese = (String*)dic->objectForKey("startGame");
以下是 chineseString.xml 文件的示例内容:
<?xml version="1.0" encoding="utf-8"?>
<plist version="1.0">
<dict>
<key>startGame</key>
<string>从XML里面读取的东东</string>
<key>japanese</key>
<string>地方</string>
</dict>
</plist>
创建动画 Animation
在 Cocos2d-x 中,我们可以创建动画。以下是创建动画的两个重载函数:
// 接受 const char* 数组的版本
Animation* HelloWorld::getAnimation(const char* stts[], int l, float delay) {
// 创建一个动画对象
Animation* ac = Animation::create();
// 设置动画的每帧延迟时间
ac->setDelayPerUnit(delay);
// 遍历数组,将每个元素对应的精灵帧添加到动画中
for (int i = 0; i < l; i++) {
ac->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(stts[i]));
}
return ac;
}
// 接受 std::string 数组的版本
Animation* HelloWorld::getAnimation(const std::string stts[], int l, float delay) {
// 创建一个动画对象
Animation* ac = Animation::create();
// 设置动画的每帧延迟时间
ac->setDelayPerUnit(delay);
// 遍历数组,将每个元素对应的精灵帧添加到动画中
for (int i = 0; i < l; i++) {
ac->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(stts[i].c_str()));
}
return ac;
}
以上代码展示了 Cocos2d-x 中字符串拼接、读取 XML 文件和创建动画的基本操作。