cocos2d-js动画的播放的2种方式
2016-01-06 13:10
302 查看
动画的播放分为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影响不大的情况下,就按照逐帧播放的方式。对于项目尽量少用大的占用资源的动画,将大的动画细分化可以减小项目资源的大小,便于项目的打包和发布。
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影响不大的情况下,就按照逐帧播放的方式。对于项目尽量少用大的占用资源的动画,将大的动画细分化可以减小项目资源的大小,便于项目的打包和发布。
相关文章推荐
- cocos2d-x游戏开发 跑酷(九) 源代码下载及小结
- 锯齿数独 cocos2d-x 开发 (二)
- Cocos2d-x v3.9发布
- Cocos2d-x 3.x中解决无法打开文件:“extensions/ExtensionMacros.h”
- 关于cocos2dx在android设备黑屏或者纹理黑块的几种情况
- cocos2d-x中3D游戏的制作-相机的使用教程
- cocos2dx - 在MFC中使用cocos2dx
- quick-cocos2dx将C++导出lua
- cocos2d-x 一些需要记住的小知识d
- Cocos2d-x-lua游戏两个场景互相切换MainScene01切换到MainScene02
- Cocos2d-x V3.2+Cocos Studio1.6 实现一个简单的uibutton点击功能
- cocos2d-js v3.6 关于处理图片锯齿、不清楚的处理方法
- Cocos2d C++ 解析CSV
- cocos2d-x里的关于C++的笔记
- cocos2dx3.4 new Lua项目后编译黑屏问题的解决
- cocos2dx精灵裁剪显示ClippingNode
- cocos飞机游戏地图滚动速度由快到慢的实现
- cocos2dx2.x&3.x部分函数对照表
- cocos2d-x3.7 cclabel文字破碎,异常,变乱
- COCOS学习笔记--内存管理(二)-PoolManager类和AutoreleasePool类的讲解