八 手游开发神器 cocos2d-x editor 之动画和帧动画

一个游戏的成功很大程度上取决于动画的成功,熟悉cocos2dx的读者都知道它具备了很多现成的动画。这一节我将实现小怪物慢慢的摇摇晃晃的向前走;

运行效果如下

八 手游开发神器 cocos2d-x editor 之动画和帧动画

八 手游开发神器 cocos2d-x editor 之动画和帧动画

八 手游开发神器 cocos2d-x editor 之动画和帧动画

代码下载地址:http://www.kuaipan.cn/file/id_25348935635744616.htm?source=1

首先新建一个帧动画文件,Resorces-----New----FramesAnimation,命名确定,创建snow_frame.plish成功

八 手游开发神器 cocos2d-x editor 之动画和帧动画

八 手游开发神器 cocos2d-x editor 之动画和帧动画

安装下图操作,创建一组帧动画,也可在xml文件调节修改;

八 手游开发神器 cocos2d-x editor 之动画和帧动画

八 手游开发神器 cocos2d-x editor 之动画和帧动画

创建成功后,把图片里面的第一帧作为精灵创建,调节好参数

八 手游开发神器 cocos2d-x editor 之动画和帧动画

八 手游开发神器 cocos2d-x editor 之动画和帧动画

打开MainLayer.js,编写代码如下,帧动画的同时向前移动:

[javascript] view plaincopy八 手游开发神器 cocos2d-x editor 之动画和帧动画八 手游开发神器 cocos2d-x editor 之动画和帧动画
 
  1. //  
  2. // CleanerScoreScene class  
  3. //  
  4. var MainLayer = function () {  
  5.     cc.log("MainLayer")  
  6.     this.scoreLabel = this.scoreLabel || {};  
  7.     this.monster = this.monster || {};  
  8.     this.score = 123;  
  9. };  
  10.   
  11. MainLayer.prototype.onDidLoadFromCCB = function () {  
  12.     if (sys.platform == 'browser') {  
  13.         this.onEnter();  
  14.     }  
  15.     else {  
  16.         this.rootNode.onEnter = function () {  
  17.             this.controller.onEnter();  
  18.         };  
  19.     }  
  20.   
  21.     this.rootNode.schedule(function (dt) {  
  22.         this.controller.onUpdate(dt);  
  23.     });  
  24.   
  25.     this.rootNode.onExit = function () {  
  26.         this.controller.onExit();  
  27.     };  
  28. };  
  29.   
  30. MainLayer.prototype.onEnter = function () {  
  31.     cc.AnimationCache.getInstance().addAnimations("Resources/snow_frame.plist");//添加帧动画文件  
  32.     var action0 = cc.Sequence.create(cc.MoveTo.create(30, cc.p(360, 200)));  //向前移动  
  33.     var actionFrame = cc.Animate.create(cc.AnimationCache.getInstance().getAnimation("monster"));   //获取帧动画  
  34.     var action1 = cc.Repeat.create(actionFrame, 90000);  
  35.     var action2 = cc.Spawn.create(action0, action1); //同步动画  
  36.     this.monster.runAction(action2);  
  37. }  
  38.   
  39. MainLayer.prototype.onUpdate = function (dt) {  
  40.     this.score += dt;  
  41.     this.scoreLabel.setString(Math.floor(this.score));  
  42. }  
  43.   
  44. MainLayer.prototype.onExitClicked = function () {  
  45.     cc.log("onExitClicked");  
  46. }  
  47.   
  48.   
  49. MainLayer.prototype.onExit = function () {  
  50.     cc.log("onExit");  
  51. }  
  52.   
  53. cc.Animate.createWithName = function (name) {  
  54.     return cc.Animate.create(cc.AnimationCache.getInstance().getAnimation(name));  
  55. }  

 

下一篇文章 我会介绍cocos2d-x  editor的粒子效果       笔者(李元友)

相关推荐