• cocos2d-js动画的播放的2种方式


    动画的播放分为2种,一种是plist播放,一种是逐帧播放。

    plist:

    //获得plist文件

     var cache = cc.SpriteFrameCache.getInstance();
         cache.addSpriteFrames(plist_***,img_***);
         //创建一个执行这个动画的精灵

     var sprite = cc.Sprite.createWithSpriteFrameName(

         cache.getSpriteFrame("***_1.png"));
         //设置精灵的位置

     sprite.setPosition(cc.p(376/2,768-340-428/2));
         //添加精灵

     this.addChild(bigBear,2);
         var str = "";
         var animFrame = [];

     //采用循环获得plist里面的内容并存入数组
         for(var a = 1; a < 22; a++){
            str = "ZDHZX1_daxiong_"+ a +".png";
            animFrame.push(cache1.getSpriteFrame(str));
         }

     //创建动画,设置播放间隔
         var animation = cc.Animation.create(animFrame,delaytime);
         sprite.runAction(cc.RepeatForever.create(cc.Animate.create(animation)));

    逐帧播放:

    //创建动画,设置播放间隔

    var animation = cc.Animation.create();
        animation.setDelayPerUnit(delaytime);
        //设置动画播放完成是否保持在第一帧,true为保持在第一帧,false为保持在最后一帧

    animation.setRestoreOriginalFrame(boolean);

    //采用循环添加动画的每一帧

    for(var a = 0; a < 19; a++){
            animation.addSpriteFrameWithFileName(img_****[a]);
        }

    //创建执行动画的精灵

    var sprite = cc.Sprite.create(img_***[0]);

    sprite.setPosition(cc.p(x,y));

    this.addChild(sprite);
        sprite.runAction(cc.Repeat.create(cc.Animate.create(animation));

     

    对于以上的两种动画播放的方式,一般动画的单张图片的大小比较小比较多,适合做成plist播放动画,做成plist可以减小项目的资源大小;另外有的动画的单张图片的大小比较大,是否做成plist影响不大的情况下,就按照逐帧播放的方式。对于项目尽量少用大的占用资源的动画,将大的动画细分化可以减小项目资源的大小,便于项目的打包和发布。

  • 相关阅读:
    MVC4数据访问EF查询linq语句的时候报错找不到表名问题
    以下各节已定义,但尚未为布局页“~/Views/Shared/_Layout.cshtml”呈现:“Scripts”。
    将函数实现放在头文件中
    const 不兼容的类型限定符问题
    Ubuntu 16.04重装后grub rescue> 终端模式修复方法
    Ubuntu 16.04 编译VTK7.1
    区域生长算法的一种C++实现
    Win7 U盘安装Ubuntu16.04 双系统
    Win7、Ubuntu双系统卸载Ubuntu系统
    AES加密补位填充的一个问题
  • 原文地址:https://www.cnblogs.com/highfly2012/p/5105185.html
Copyright © 2020-2023  润新知