cocos2d-x开发: 一切应该从配置文件读取开始
来源:未知 责任编辑:责任编辑 发表时间:2015-03-01 01:33 点击:次
想要做一款完整的游戏,应该从配置文件读取开始。cocos2d-x本身提供了UserDefault来操作xml格式的配置文件,准确的说配置这模块引擎开发者已经考虑到了.但是xml格式包含大量无关的格式信息,对于开发者直接使用编辑器操作也不是很友好.我期望的配置文件应该具备两个特点,第一:格式简单.这是我一贯的*nix风格的要求,我喜欢只管的#注释以及key-value的配置方式.可能唯一需要考虑的是这样简单的配置方式会不会因为业务扩展而显得功能不足.这一点是可以放心的,那些都是业务逻辑相关的,选择就会很多.至少现在不是应该考虑的范畴.第二:对开发者友好.什么叫做友好? 说白了,按照我的理解就是很容易可以定位配置信息的位置,容易修改,对编辑器依赖不高.我们随便用个notepad++/subl之类的文本编辑器就可以直接阅读和修改.
p>
p>好了,基于上面的考虑,ini格式无疑是比较好的选择.我最终选用了ini格式作为配置文件首选.所以就写了一个c++类来解析和操作ini配置.代码如下:
p>
p>
p> 1 #ifndef __xy_INICache_INCLUDE__
p> 2 #define __xy_INICache_INCLUDE__
p> 3 #include <map>
p> 4 #include <vector>
p> 5 #include <string>
p> 6 namespace xy
p> 7 {
p> 8 class INICache
p> 9 {
p>10 public:
p>11 INICache();
p>12 virtual ~INICache();
p>13 static INICache* createFromFile(const std::string& filePath);
p>14 static INICache* createFromStream(const std::stringstream& sstream);
p>15 bool loadFromFile(const std::string& filePath);
p>16 bool loadFromStream(const std::stringstream& sstream);
p>17 void flush(const std::string& filePath);
p>18 std::string getFilePath() const { return this->M_filePath_; }
p>19 bool isSectionExist(const std::string& section) const;
p>20 bool deleteSection(const std::string& section);
p>21 void getSectionNames(std::vector<std::string>& sectionVector);
p>22 void setString(const std::string& section, const std::string& key, const std::string& value);
p>23 std::string getString(const std::string& section, const std::string& key, const std::string& defaultValue);
p>24 void setInteger(const std::string& section, const std::string& key, int value);
p>25 int getInteger(const std::string& section, const std::string& key, int defaultValue);
p>26 void setDouble(const std::string& section, const std::string& key, double value, int pre);
p>27 double getDouble(const std::string& section, const std::string& key, double defaultValue);
p>28 void setBoolean(const std::string& section, const std::string& key, bool value);
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>