[学习笔记] 用TexturePacker建立动画Animation
来源:互联网 发布:阿里云专线是啥意思 编辑:程序博客网 时间:2024/05/17 03:03
1, 下载sprites 图, 但是一般都是合起来一整张的
2,用PS进行切片,并保存
3,用TexturePacker去把上面的图合成两个文件, 可以给COCOS2D用
4,把这两文件放进项目里,
1),拖进res文件夹
2)在resource.js里面加入这两个文件
5,开始用Cocos2D写代码吧, 官方代码:
var AnimationLayer = cc.Layer.extend({ spriteSheet:null, runningAction:null, sprite:null, ctor:function () { this._super(); this.init(); }, init:function () { this._super(); // create sprite sheet cc.spriteFrameCache.addSpriteFrames(res.runner_plist); this.spriteSheet = new cc.SpriteBatchNode(res.runner_png); this.addChild(this.spriteSheet); // init runningAction var animFrames = []; for (var i = 0; i < 8; i++) { var str = "runner" + i + ".png"; var frame = cc.spriteFrameCache.getSpriteFrame(str); animFrames.push(frame); } var animation = new cc.Animation(animFrames, 0.1); this.runningAction = new cc.RepeatForever(new cc.Animate(animation)); this.sprite = new cc.Sprite("#runner0.png"); this.sprite.attr({x:80, y:85}); this.sprite.runAction(this.runningAction); this.spriteSheet.addChild(this.sprite); }});
6, 按照官方代码写, 绝对崩溃
好了, 现在重点来了...
因为TexturePacker生成的文件是PNG的, 所以我一直以为程序里的后缀是和官方代码里一样是用PNG的,
但是每次都是运行到 this.sprite = new cc.Sprite()(就是this.sprite = new cc.Sprite("#runner0.png");)就崩溃. 一直没找到原因,
后来终于发现, 原来我打包前的文件名是runner_00.gif, runner_01.gif...原来是扩展名用错了~~
改完之后就是:
var AnimationLayer = cc.Layer.extend({
spriteSheet: null ,
runningAction: null ,
sprite: null,
ctor: function (){
this ._super();
this .init();
},
init: function (){
var size = cc.winSize;
cc.spriteFrameCache.addSpriteFrames(res.runner_plist); //ATTENTION addSpriteFrames with a "s"
this .spriteSheet = new cc.SpriteBatchNode(res.runner_png);
this .addChild( this.spriteSheet);
var animFrame = [];
for (var i = 0; i < 6; i++){
var str = "runner_0" + i + ".gif";//<<====
var frame = cc.spriteFrameCache.getSpriteFrame(str);
animFrame.push(frame);
}
var animation = cc.Animation(animFrame, 0.1);
this .runningAction = new cc.RepeatForever( new cc.Animate(animation));
this .sprite = new cc.Sprite( "#runner_00.gif");//<<=====
this .sprite.attr({
x:size.width / 2,
y:size.height / 2
});
this .sprite.runAction( this.runningAction);
this .spriteSheet.addChild( this.sprite);
}
});
0 0
- [学习笔记] 用TexturePacker建立动画Animation
- 动画学习笔记-Android Animation
- TexturePacker的学习笔记
- zwoptex/texturepacker学习笔记
- AjaxControltoolkit学习笔记—Animation动画控件
- XNA 学习笔记-动画(Animation)
- Android学习笔记之动画效果Animation
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- PHP+jQuery+Ajax多图片上传
- java持有对象
- 第十二周项目包含递归函数的程序1
- 第三方微博项目日志第一天1
- Win8.1 下安装 eVC++ 4.0
- [学习笔记] 用TexturePacker建立动画Animation
- dota 视频想到的 —— (小黑支配弓箭兵自杀)
- ThreadLocal使用示例
- 详解Linux2.6内核中基于platform机制的驱动模型
- C语言建立单链表出错误及其分析
- 起点
- Java 图片处理 给原有图片填充颜色满足需求大小 背景透明
- 第十二周项目3-用递归方法求解1
- 《锦瑟》古风•和风原创音乐专辑