您的位置:首页 > 移动开发 > Cocos引擎

【cocos2d-js系列问题】cocos2d-js创建帧动画的两种方法

2015-12-08 12:56 597 查看
不过在这之前,一定要先把图片加载到内存当中去;其实你也可以不加,但是需要换另外一个函数就行;

//将plist问价加载到内存当中
cc.spriteFrameCache.addSpriteFrames(res.play_plist);


第一种方法:

创建一个空的精灵

var sp = new cc.Sprite();
sp.setTag(1000);
sp.setPosition(500,400);
this.addChild(sp,1);


//定义一个数组 后面加中括号
var allFrame = [];
//for语句载入5个动画图片
for(var i = 1; i < 4; i++){
//加载针动画,rect四个参数,前两个X,Y的坐标,默认0就OK,
//后面两个参数传图片的宽度和高度
var str = "enemyLeft1_"+i+".png";
var allf = cc.spriteFrameCache.getSpriteFrame(str);//new cc.SpriteFrame()

if(!allf){
cc.log("@@@@@@@");
}

allFrame.push(allf);
}

//每隔0.03秒切换一张图片
var animation = new cc.Animation(allFrame,0.1);
//把所有的动画连接起来进行播放
var animate = new cc.Animate(animation);
//重复的执行摸个动作
var action = animate.repeatForever();//new cc.RepeatForever(animate)
//用精灵来执行针动画,让针动画跑起来
sp.runAction(action);



第二种方法:

同样要创建一个空的精灵


var sp = new cc.Sprite();
sp.setTag(1000);
sp.setPosition(500,400);
this.addChild(sp,1);


for(var i = 1;i<=4;i++){
var frameName = "enemyLeft1_"+i+".png";
animation.addSpriteFrame(frameName);
}


animation.setDelayPerUnit(0.1);
animation.setRestoreOriginalFrame(true);
var action = cc.animate(animation).repeatForever();
sp.runAction(action);


这个就当着是一个笔记,看到的人希望能帮助你,谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: