前段時間移植一個頁游到手游,原先頁游的項目里面有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