【cocos2d-js系列問題】cocos2d-js建立幀動畫的兩種方法
阿新 • • 發佈:2019-02-11
不過在這之前,一定要先把圖片載入到記憶體當中去;其實你也可以不加,但是需要換另外一個函式就行;
//將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 = newcc.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);
這個就當著是一個筆記,看到的人希望能幫助你,謝謝