cocos2d-x v2 和 v3 对照手册
2015-05-04 更新: 加入 OpenGL 和 MenuItem 的相关变化。 本文的内容来自于对其它几篇文章的翻译、修改和合成,同时,我也会不断增加自己的内容。 下面这部分内容来自对这篇文章的翻译:cocos2d-x v2 to v3 mapping guide 但这篇文章有一些老了,还有一些内容已经在 cocos2d-x 3.3 中过时。因此,我并没有进行完全对照翻译。对原文中的错误,我也进行了一些修改。 我的新项目开始使用 cocos2d-x v3 。cocos2d-x v3 和 v2 相比有非常大的改变。我把踩过的坑列在下面,以方便后来之人。 cocos2d-x 常用类名改变下面的表格中的类名的转换方式主要是直接删除了 CC 前缀。
cocos2d-x 类名改变下面表格中的类名的转换就比较大了。
CCString 用法改变之前: :::C++ CCString* str = CCString::createWithFormat("%s.png","picture"); 现在: :::C++ std::string str = StringUtils::format("%s.png","picture"); CCDictinoary 用法改变之前: :::C++ CCDictionary* dict = CCDictionary::createWithContentsOfFile("name.plist"); CCArray* arr = (CCArray*) data->objectForKey("Levels"); 现在: :::C++ std::string path = FileUtils::getInstance()->fullPathForFilename("name.plist"); ValueMap dict = FileUtils::getInstance()->getValueMapFromFile(path); ValueVector arrLevels = data.at("Levels").asValueVector(); CCArray 用法改变这里就是 C++ vector 容器的标准用法了。
触摸用法改变
单例类用法改变
CCTime 用法改变CCTime cocos2d-x v3 中已经被删除了。
范例: :::C++ static inline float getTimeDifferenceMS(timeval& start,timeval& end) { return ((((end.tv_sec - start.tv_sec)*1000.0f + end.tv_usec) - start.tv_usec) / 1000.0f); } 下面的内容为 zrong 原创。 OpenGL 的用法变化
MenuItem 的用法变化以前我写过一篇 Cocos2d-x中的事件调用方式汇总 ,其中介绍了 cocos2d-x 中的回调函数。而在 v3 版本中,这些回调函数已经完全废弃了。 在 cocos2d-x v3 中,使用的是 C++11 提供的标准的 std::bind 功能来实现回调。 让我们看看 // new callbacks based on C++11
#define CC_CALLBACK_0(__selector__,__target__,...) std::bind(&__selector__,##__VA_ARGS__)
#define CC_CALLBACK_1(__selector__,std::placeholders::_1,##__VA_ARGS__)
#define CC_CALLBACK_2(__selector__,std::placeholders::_2,##__VA_ARGS__)
#define CC_CALLBACK_3(__selector__,std::placeholders::_3,##__VA_ARGS__)
所以,对于 cocos2d-x v2 中这样的调用: CMenuItemImage *item1 = CCMenuItemImage::create(s_pPathB1,s_pPathB2,this,menu_selector(ActionsDemo::backCallback));
在 cocos2d-x v3 中应该是这样的: MenuItemImage *item1 = MenuItemImage::create(s_pPathB1,CC_CALLBACK_1(ActionsDemo::backCallback,this));
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |