use SWF / Flash in cocos2d-x; cocos2d(cocos2d-x) 直接播放flash / SWF文件


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


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM