日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【cocos2dx】rapidjson使用方法以及中文显示的解决方法【续】

發布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【cocos2dx】rapidjson使用方法以及中文显示的解决方法【续】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一個博客講了怎么用rapidjson讀取中文字符串,但是有一個很明顯的缺陷 就是不能直接讀取數據編輯器導出的數據。下面我們來修復這個bug并且將代碼精簡到不到原來的一半大小。


上一博客的地址是:【cocos2dx】rapidjson使用方法以及中文顯示的解決方法


不多說 直接上源碼吧:


首先,數據編輯器導出的格式是:

[{"id":1,"content":"再次按下返回鍵退出游戲"},{"id":2,"content":"五子棋"},{"id":3,"content":"黑色方"},{"id":4,"content":"白色方"},{"id":5,"content":"當前玩家"},{"id":6,"content":"小提示:"},{"id":7,"content":"null"},{"id":8,"content":"null"},{"id":9,"content":"null"},{"id":10,"content":"null"},{"id":11,"content":"null"},{"id":12,"content":"null"},{"id":13,"content":"null"},{"id":14,"content":"null"},{"id":15,"content":"null"},{"id":16,"content":"null"},{"id":17,"content":"null"}]
導出的時候請選擇以屬性的方式導出


解析的類:

#pragma once /* * 獲取字符串類 單例 * 用于獲取JSON文件中的中文字符串 */ #include "cocos2d.h" #include <string> #include <cocos-ext.h> #include "cocostudio\CocoStudio.h" #include "ui\CocosGUI.h" USING_NS_CC; USING_NS_CC_EXT; using namespace std; using namespace cocostudio;/** * 數據ID的宏定義,用于找到中文數據 */ static int s_iExit = 1; //再次按下返回鍵退出游戲 class ReadString { protected:rapidjson::Document m_doc; //暫存的數據static ReadString* rs; public:static ReadString* getInstance();std::string parse(int key); private:static ReadString* creat(std::string fileName);bool init(std::string fileName);ReadString(){};~ReadString(void){}; };


然后是cpp:

#include "ReadString.h"ReadString* ReadString::rs = nullptr; //初始化 ReadString* ReadString::creat(std::string fileName) {ReadString *RS = new ReadString(); if(!RS || !RS->init(fileName)){delete RS;RS = nullptr;return nullptr;}return RS; }bool ReadString::init(std::string fileName) {bool ret = false;do {std::string jsonpath = FileUtils::getInstance()->fullPathForFilename(fileName);std::string contentStr = FileUtils::getInstance()->getStringFromFile(jsonpath);m_doc.Parse<0>(contentStr.c_str());CC_BREAK_IF(m_doc.HasParseError());ret = true;} while (0);return ret; }ReadString* ReadString::getInstance() {if(rs == nullptr)rs= ReadString::creat("String.json");return rs; }string ReadString::parse(int key) {if (!m_doc.IsNull() && m_doc.IsArray()) //判斷是不是數組{ for(unsigned int i=0;i<m_doc.Size();++i){do {CC_BREAK_IF(m_doc[i].IsNull());CC_BREAK_IF(m_doc[i]["id"].IsNull());int i_id = m_doc[i]["id"].GetInt();CC_BREAK_IF(i_id != key); //這一行是尋找相同的key,找到了才執行下面的語句,找不到就開始下一個循環CC_BREAK_IF(m_doc[i]["content"].IsNull());return m_doc[i]["content"].GetString();}while(0);}} return ""; //沒查找到任何對象則返回空字符串 }


上一個博客中的read函數被我改成了parse,其實功能是一樣的。但是是不是覺得這樣好看很多哈。(好吧,其實還是那么難看)


使用的方法也是一樣的:

ReadString::getInstance()->parse(s_iExit)


總結

以上是生活随笔為你收集整理的【cocos2dx】rapidjson使用方法以及中文显示的解决方法【续】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品日韩欧美一区二区三区 | 国产毛片毛片毛片毛片毛片 | h片在线观看视频 | 浴室里强摁做开腿呻吟男男 | 高清久久久久久 | 成人久久视频 | 亚洲国产日韩精品 | 国产第2页 | 人妻精品一区二区在线 | 人人草人人爽 | 国产日韩欧美自拍 | 亚洲五级片| 看av网址 | 精品国产91乱码一区二区三区 | 国产成人99久久亚洲综合精品 | 白白色在线观看 | 国产在线小视频 | 性无码专区无码 | 永久黄网站 | 精品一区二区三区四区五区六区 | 粉嫩av网址 | 欧美伦理片网站 | 久久免费高清 | 在线不卡欧美 | 精品动漫一区二区三区在线观看 | 加勒比一区二区三区 | 久草电影网站 | 精东传媒在线 | 另类激情 | 久久夜色精品国产噜噜亚洲av | 亚洲一区无 | 天天色综合天天 | 伊人色婷婷 | 制服诱惑一区二区三区 | 亚洲精品99久久久久中文字幕 | 国产孕妇一区二区三区 | 曰本不卡视频 | av嫩草| 久伊人| 丁香综合激情 | 变态另类一区二区 | h视频网站在线观看 | 90岁肥老奶奶毛毛外套 | 亚洲www啪成人一区二区麻豆 | 亚洲人人夜夜澡人人爽 | 国产一级片一区二区 | 亚洲最大成人在线 | 在线观看麻豆视频 | 中国无码人妻丰满熟妇啪啪软件 | 成年人黄色 | 亚洲国产成人自拍 | 成人在线观看一区 | 噜噜噜网站 | 国产精品无码成人片 | 好了av在线 | 大尺度做爰无遮挡露器官 | 日韩最新中文字幕 | 黄视频在线观看免费 | 女生毛片 | 成人午夜视频在线免费观看 | 欧美大喷水吹潮合集在线观看 | 日韩免费影视 | 北条麻妃青青久久 | 住在隔壁的她动漫免费观看全集下载 | 欧美伊人久久 | 国产精品香蕉在线 | 丝袜老师扒开让我了一夜漫画 | 国产成人主播 | 成人久久久精品国产乱码一区二区 | 成人国产精品一区二区 | 91久久视频 | 亚洲第一天堂av | 老司机在线免费视频 | 朋友人妻少妇精品系列 | 亚洲春色一区二区三区 | 床戏高潮做进去大尺度视频网站 | 性折磨bdsm欧美激情另类 | 91视频合集| 精品久久久久成人码免费动漫 | 亚洲一区二区三区欧美 | 午夜av免费在线观看 | 超级碰在线视频 | 欧美区一区二区三 | 91成人一区| 午夜丰满寂寞少妇精品 | 深夜福利一区二区三区 | 久久亚洲精少妇毛片午夜无码 | 欧美国产成人精品一区二区三区 | 中文字幕一区二区三区手机版 | 男女搞鸡网站 | 狠狠香蕉| 国产在线视频第一页 | 国产精品影院在线观看 | 久久精品大全 | 日日夜夜综合 | 日韩在线观看视频免费 | 亚洲成人h| 一本色道久久综合亚洲精品小说 | 一区二区三区四区在线视频 |