V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
guoxx_
V2EX  ›  iDev

不推荐使用cocos2d-x 2.1.1

  •  
  •   guoxx_ · 2013-03-06 22:12:00 +08:00 · 7383 次点击
    这是一个创建于 4281 天前的主题,其中的信息可能已经有所发展或是发生改变。
    申明:不推荐用cocos2d-x是我现在的看法,同时为了保险起见也限定了版本号为2.1.1,其实我想表达的观点是,不要使用cocos2d-x!!

    1. 从官网下载cocos2d-x的最新版本2.1.1,结果里面的LuaCocos2d.cpp根本就是旧的,新的api在lua里根本不能用,tolua++下的一一堆pkg文件也都是旧的,想要自己生成LuaCocos2d.cpp还要重写pkg文件。JS Binding不知道什么情况,不管怎么样,这样的包都能做为stable release发出来,我对他们的QA系统严重怀疑。
    2. 一些实现让人很是疑惑,例如对retina的支持,google了一下说是默认就开始了retina的支持,这个倒是不假,问题是CCDirector里的setContentScaleFactor,getContentScaleFactor现在拿来干什么用呢,如果我setContentScaleFactor(2.0)那么得到的CCSprite大小会变成原来的0.5,这显然不是我想要的。如果setContentScaleFactor(1.0)/*相当于什么都不做*/,那么CC_CONTENT_SCALE_FACTOR()得到的结果也会是1.0,这也显然不是我希望的结果,而且注释上写的是On iPhone it returns 2 if RetinaDisplay is On啊,这不明显坑爹嘛??
    3. 妄图用c++来实现objc,可能是移植与cocos2d-iphone的原因, c++代码里充满了objc的味道,用多重继承来模拟Protocol,对于从objc->c++的同学,徒增学习成本。
    4. extension里的代码质量不高或者说低下,CCTableView里bug一堆,Lua Binding也没有,HttpRequest居然还依赖于CCDirector的Scheduler,就不能抽象一个Timer用不同OS的实现吗?


    另外,我觉得垮平台的游戏引擎,不能考虑生成OpenGL的lua binding之后,用lua来实现一个吗?这样不是比cocos2d-x更好的跨平台方案?以上只是个人的一些发散,欢迎讨论.
    7 条回复    1970-01-01 08:00:00 +08:00
    lxk19921205
        1
    lxk19921205  
       2013-03-25 10:14:04 +08:00
    关于retina支持的那个,我想说:
    那个On iPhone it returns 2什么的注释应该是过时的,我不知道为啥还留在那里..... 去发个pull request呗?

    官方关于多分辨率适配的文档在这里:
    http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Multi_resolution_support
    里头有说明CONTENT_SCALE_FACTOR的意义已经变了

    还有一篇群众写的似乎被官方微博转过的文档..:
    http://user.qzone.qq.com/296821855/blog/1355237929#!app=2&via=QZ.HashRefresh&pos=1355237929
    dualface
        2
    dualface  
       2013-03-25 11:20:54 +08:00
    guoxx_
        3
    guoxx_  
    OP
       2013-04-02 23:32:44 +08:00
    @dualface 大致看了一下,东西还是不错的,比原生的lua binding强。你们大规模使用cocos2d-x + lua吗?有没考虑过为cocos2d-iphone开发lua binding?

    之前用过cocos2d-iphone 现在考虑到跨平台选择用cocos2d-x 最近感觉cocos2d-x + lua binding越用坑越多 c++在动态性上比objc差太多 导致原来很容易实现的功能在x里需要费很大的力气或者一些dirty hack才能办得到(其中tolua的绑定方式也有不少功劳)
    jacklin
        4
    jacklin  
       2013-04-03 00:34:27 +08:00
    呵呵,只能说还好
    darkfall
        5
    darkfall  
       2013-04-03 01:48:13 +08:00
    呵呵, cocos2d-x所谓的跨平台不是个笑话么. 代码质量我就懒得喷了
    mosant007
        6
    mosant007  
       2013-06-03 14:36:00 +08:00
    估计以上都是oc开发的观点,就C++开发而言,跨平台还是很重要的
    mosant007
        7
    mosant007  
       2013-06-03 14:38:54 +08:00
    而且很多东西不一定都要依赖引擎,比如说自适应,完全可以自己写,没有啥复杂的算法。cocos2d-x还是比较牛逼的,特别是有周边强大的UI编辑工具,做游戏的不应该为为UI写多余的代码,UI完全可以用编辑器完成,毕竟这个写UI代码不是啥技术含量的东西,重点还是数据处理,和逻辑流程,所以这里就无所谓用啥语言,而重点是引擎可以支持UI编辑解析
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 02:51 · PVG 10:51 · LAX 18:51 · JFK 21:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.