前段时间移植一个页游到手游,原先页游的项目里面有1000+的Flash人物,宠物动画,特效。
这要是全部重新做一遍,还不累死人?所以就想干脆直接在Cocos2d(x)里面播放SWF文件。(包括场景,过场动画,人物、宠物actions)
思路如下: 解析swf再把swf里面的各种tag,sprite用opengl es来绘制。
以前在MP4时代,就做过Flash相关工作,但是那个年代还cpu还不支持opengl es,内存还是16M。
所以必须重新学一遍opengl es, NeHe, 红书,蓝书,图形学。。。swf_file_format_spec 。。。1个月吭掉几本大部头。
然后再用1个月的时间完善一下代码。并把代码集成到cocos2d(x)中。。。。
一个字 累!
集成到Cocos2d和Cocos2dx,支持es 1.0 2.0:
CCFlashNode * fn = CCFlashNode::create("dog.swf");
fn->setPosition(ccp(100,100));
fn->setScale(0.8f);
fn->setFlipx(true);
f n->setRepeat(true);
fn->runAction(true);
addChild(fn);
fn->setFrameEvent(-1,CC_SELECTOR(::fun));
fn->stopAction();
看过的书:(很多都没有看透)
效果截图:(Demo资源是洛克王国的)
截图看不出宠物都是在动的,大概每个宠物有60frame的静止动作。
这个截图是战斗过程,音速犬 攻击 蒲公英,一个是攻击动 一个是效果动画,一个是被攻击动画。最后还要播放buffer动画。每个动画都是矢量的,如果全部用cocos2dx现有方法工作繁琐程度不说,光是2个宠物的战斗图片就有几兆了。
同上;另外一个技能,可以看到蒲公英可以根据音速犬的技能精确的做出被打击反应。
下面是直接从网上下载的flash故事,可以直接播放。
所有源码出售 ,请联系: chenee543216 AT gmail.com 内容包括:
1\ 页游roco王国 (17roco.qq.com) 的ios版本移植,demo已经做好玩家走动、Tilemap,小地图,swf版本支持的战斗(可控战斗,不是播放动画!),换皮后很快能够出单机demo。(游戏代码出售,请联系: chenee543216 AT gmail.com)
2\ 页游悟空识字(http://gongfubb.com/)的ios模仿,整个界面ok,包括swf支持的演示动画。
3\ 3个工作日无偿技术支持.
其中悟空识字+cocos2dx-swf的所有代码、资源无偿贡献给开源社区。
代码开放在github,地址: https://github.com/chenee/cocos2dx-swf
视频和简单的Demo解说已经上传,感兴趣的瞅瞅
http://v.youku.com/v_show/id_XNTg1NDU4NTAw.html
另外,这里有一个哥们做的开源项目:http://www.cocos2d-x.org/boards/18/topics/27924
但是我下载后发现不能够正常播放上面项目中的swf文件。而且大家的实现方式不同,具体代码还没有来得及拜读,只是匆匆看了一眼,似乎没有发现矢量的实现。感兴趣的朋友也可以去研究一下。
这个是我用到的swf资源文件,大家可以试试。
http://download.csdn.net/detail/chenee543216/5789345