zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    Allegro PCB Design GXL (legacy) 使用slide无法将走线推挤到焊盘的原因
    OrCAD Capture CIS 16.6 导出BOM
    Altium Designer (17.0) 打印输出指定的层
    Allegro PCB Design GXL (legacy) 将指定的层导出为DXF
    Allegro PCB Design GXL (legacy) 设置十字大光标
    Allegro PCB Design GXL (legacy) 手动更改元器件引脚的网络
    magento产品导入时需要注意的事项
    magento url rewrite
    验证台湾同胞身份证信息
    IE8对css文件的限制
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3180361.html
Copyright © 2011-2022 走看看