Cocos Studio能夠導出JSON格式的數據文件,這是因為它是一種非常流行的數據交換格式。JSON是JavaScript Object Notation的縮寫,它是一種輕量級的數據交換格式。在Cocos2d-x游戲引擎中,JSON文件通常用于存儲游戲場景中的節點和它們的屬性信息。
JSON文件是基于key-value鍵值對形式存儲數據。它的基本結構是由花括號包裹的一組鍵值對,每個鍵值對由冒號分隔。一個完整的JSON格式的例子如下:
{ "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumbers": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] }
在Cocos2d-x游戲引擎中,JSON文件的讀寫可以通過rapidjson庫完成。下面是一個JSON文件的讀取示例代碼:
#include "cocos2d.h" #include "ui/CocosGUI.h" #include "json/rapidjson.h" #include "json/document.h" USING_NS_CC; using namespace ui; using namespace rapidjson; bool HelloWorld::init() { if (!Layer::init()) { return false; } // 讀取JSON文件內容 std::string jsonFilePath = FileUtils::getInstance()->fullPathForFilename("test.json"); std::string jsonString = FileUtils::getInstance()->getStringFromFile(jsonFilePath.c_str()); CCLOG("jsonString: %s", jsonString.c_str()); // 解析JSON文件內容 Document doc; doc.Parse<0>(jsonString.c_str()); if (doc.IsObject()) { // 獲取JSON文件中的字符串 std::string firstName = doc["firstName"].GetString(); CCLOG("firstName: %s", firstName.c_str()); // 獲取JSON文件中的整數 int age = doc["age"].GetInt(); CCLOG("age: %d", age); // 獲取JSON文件中的數組 const Value& phoneNumbers = doc["phoneNumbers"]; for (SizeType i = 0; i< phoneNumbers.Size(); i++) { const Value& phoneNumber = phoneNumbers[i]; std::string type = phoneNumber["type"].GetString(); std::string number = phoneNumber["number"].GetString(); CCLOG("phone %d: %s - %s", i+1, type.c_str(), number.c_str()); } } return true; }
上一篇vue v if 延時
下一篇cocos 讀取json