如果cocos2d-x进化成一个2.5d游戏引擎的话,那应该会比现在更加强大。 纯3d的估计不会比Unity做的更好了,但是2.5d的应用还是具有很大的现实意义。
比如,小场景3d应用(3d立体童话书,3d麻将,3d水果忍者,3d魔方等等),2d地图加入3d 模型的2.5dmmo应用(这个不确定会不会比2d骨骼动画更有表现力或者是开发效率更高),小型3d mmo的开发(比如龙之召唤类卡牌游戏,这些游戏完全没有必要使用Unity),2d游戏加入3d光效(纯2d光效消耗太大,3d光效虽然会增加一些cpu运算,但是极大的降低内存开销---一张贴图和20张图片帧的对比啊)
这里暂时仅仅完成对md2模型的加载和显示,相比cocos3d它更加简单,与cocos2d-x的系统更加契合,也更加符合我的需求--毕竟我不是拿cocos2d-x做一个3d游戏,而是想3d的一些特殊元素增加2d游戏的表现力(代码取自cocos2d-x的一个3d分支,我抛坟抛出来的...),后期会尝试加入特效系统,主要完成2d游戏中3d光效的播放。(在完成后代码会发布到github,现在先直接贴源代码)
3d显示代码相对比较多,暂时放到csdn的资源下载里(http://download.csdn.net/detail/langresser/5574973)
CCNode修改: transform变为虚函数,方便CCSprite3D子类重写
virtual void transform(void);
使用:
CCSprite3D* sprite = CCSprite::create("模型文件", "贴图文件");
layer->addChild(sprite);
sprite->runAction(移动、旋转之类的action)