一个游戏的成功很大程度上取决于动画的成功,熟悉cocos2dx的读者都知道它具备了很多现成的动画。这一节我将实现小怪物慢慢的摇摇晃晃的向前走;
运行效果如下
代码下载地址:http://www.kuaipan.cn/file/id_25348935635744616.htm?source=1
首先新建一个帧动画文件,Resorces-----New----FramesAnimation,命名确定,创建snow_frame.plish成功
安装下图操作,创建一组帧动画,也可在xml文件调节修改;
创建成功后,把图片里面的第一帧作为精灵创建,调节好参数
打开MainLayer.js,编写代码如下,帧动画的同时向前移动:
// // CleanerScoreScene class // var MainLayer = function () { cc.log("MainLayer") this.scoreLabel = this.scoreLabel || {}; this.monster = this.monster || {}; this.score = 123; }; MainLayer.prototype.onDidLoadFromCCB = function () { if (sys.platform == ‘browser‘) { this.onEnter(); } else { this.rootNode.onEnter = function () { this.controller.onEnter(); }; } this.rootNode.schedule(function (dt) { this.controller.onUpdate(dt); }); this.rootNode.onExit = function () { this.controller.onExit(); }; }; MainLayer.prototype.onEnter = function () { cc.AnimationCache.getInstance().addAnimations("Resources/snow_frame.plist");//添加帧动画文件 var action0 = cc.Sequence.create(cc.MoveTo.create(30, cc.p(360, 200))); //向前移动 var actionFrame = cc.Animate.create(cc.AnimationCache.getInstance().getAnimation("monster")); //获取帧动画 var action1 = cc.Repeat.create(actionFrame, 90000); var action2 = cc.Spawn.create(action0, action1); //同步动画 this.monster.runAction(action2); } MainLayer.prototype.onUpdate = function (dt) { this.score += dt; this.scoreLabel.setString(Math.floor(this.score)); } MainLayer.prototype.onExitClicked = function () { cc.log("onExitClicked"); } MainLayer.prototype.onExit = function () { cc.log("onExit"); } cc.Animate.createWithName = function (name) { return cc.Animate.create(cc.AnimationCache.getInstance().getAnimation(name)); }
下一篇文章 我会介绍cocos2d-x editor的粒子效果 笔者(李元友)
资料来源:cocos2d-x editor