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


  • 相关阅读:
    一个页面从输入url到页面加载显示完成,中间都经历了什么
    获取鼠标点击的是那个键位、阻止鼠标点击的默认事件
    获取鼠标的位置
    图片上传
    jQuery实现瀑布流(pc、移动通用)
    怎么用js或jq点击展开,出现隐藏的DIV,点击收起DIV又隐藏起来.
    js商城倒计时
    页面跳转前动画加载,页面跳转后记住滚动位置
    乐观锁与悲观锁
    过滤器、监听器、拦截器的区别
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3180361.html
Copyright © 2011-2022 走看看