- 金属破碎机
- 破石机
- 石头破碎机
- 颚式破碎机
- 反击式破碎机
- 锤式破碎机
- 复合式破碎机
- 冲击式破碎机
- 立式复合破碎机
- 重锤式破碎机
- 花岗岩石破碎机
- 高效破碎机
- 双齿破碎机
- 煤矸石破碎机
- 四辊破碎机
- 环锤式破碎机
- 小型破碎机
- 双轴破碎机
- 单辊式破碎机
- 对辊式破碎机
- 圆锥式破碎机
- 振动给料机
- 圆振动筛
- 斗式提升机
- 直线振动筛
- 电磁振动给料机
- 滚筒筛沙机
- 高频筛
- 振动筛
- 滚筒洗石机
- 干式磁选机
- 螺旋溜槽
- 螺旋分级机
客户购机前,金狮贵宾会登录网址免费派工程技术人员到用户现场为用户规划场地、...
- 先有cocos2d-python,之后移植到iOS上面,成了cocos2d-iphone。cocos2d-iphone使用objc编写。随着iOS的流行,cocos2d-iphone在iOS的游戏开发中,变得流行。cocos2dx是在cocos2d-iphone流行之后,采用C++重新编写的,x表示cross,就是crossplatform(跨平台)的意思。在3.0之前,cocos2dx只是在在cocos2d-iphone后面跟随模仿,所有的接口,类名,设计跟cocos2d-iphone一模一样,只是使用C++来模仿objc的特性。CCObject,CCArray,retain,release,autorelease等等概念,其实从objc中来的。在3.0之前,cocos2dx的代码质量从C++的角度来看,客气点说,是不怎么样。不客气说,就是糟糕。但因为它解决了用户跨平台的迫切需求,并且也算容易使用,所以cocos2dx慢慢变得流行。为什么大量使用宏定义函数,而不选择使用模板?简单回答,就是因为cocos2dx需要模仿cocos2d-iphone,也就需要使用C++来模仿objc的特性,有些在objc中很自然的特性,在C++中没有对应的,也只好使用宏来模仿。而objc并没有模板,在cocos2dx中,也不能使用模板,一旦使用模板,相比宏,更容易引起cocos2dx和cocos2d-iphone接口的分化。模板也算C++中比较高级的特性了,从objc转过来的cocos2d-iphone的程序员,也难以掌握模板。那为什么cocos2dx一定要跟随cocos2d-iphone呢?因为在早期,cocos2d-iphone使用的人数远远比cocos2dx多。cocos2d-iphone的势大,很多开发iOS游戏的人更熟悉cocos2d-iphone的接口。并且已经有些游戏采用cocos2d-iphone编写了,跨平台是后来的需求。cocos2dx设计跟随cocos2d-iphone,游戏开发者迁移到cocos2dx的代价更少,接口的学习成本会很少。假如那时,cocos2dx自己设计一套接口,就算技术更好,代码质量更好,也很难像今天那样流行。当然了,接口自己设计一套,也就不能称呼成cocos2dx了。就算是今天,也会有很多开源的2D引擎,技术上比cocos2dx好,代码质量也比cocos2dx好。但就没有cocos2dx这样流行。市场从来不是简单选择技术最好的。随着cocos2dx变得越来越流行,cocos2dx跟cocos2d-iphone的地位反过来了,现在的开发者更熟悉cocos2dx。这个时候,cocos2dx就可以放开手脚来重新设计。3.0之后,它的代码更加符合C++的习惯,而并非仅仅模仿objc。可以说,3.0是个分界点,从那个时候开始,cocos2dx才勉强算是一个独立的2D引擎,之前只是附庸状态。现在,cocos2d-iphone夹在跨平台的cocos2dx,和苹果出的SpriteKit之间,地位变得很尴尬,处在半死不活的僵尸状态,就看啥时候断气了。
cocos2dx为什么大量使用宏定义函数而不选择使用模板
2019-12-17 22:44:40
- 上一条:上一篇:波音787好吗
- 下一条:下一篇:Wacom要买几寸的太小了会不会不方便