EaselJS MultiRow Spritesheet

Posted

技术标签:

【中文标题】EaselJS MultiRow Spritesheet【英文标题】: 【发布时间】:2013-02-22 23:11:25 【问题描述】:

我有一个小问题,我使用的是多行 Spritesheet ,其中每一行都是一系列图像。

但是我不能让精灵表从不同的高度开始(所以它可以向下移动),它们都从顶角开始

 var spriteSheetUp = new createjs.SpriteSheet(
    // image to use
    images: [snakeI],
    // width, height & registration point of each sprite
    frames: width: 96, height: 90, regX: 0, regY: 290,
    animations: 
        move: [0, 3, "move"]
    
);

我希望以上内容开始使用像素 290 处的帧。

提前致谢!

【问题讨论】:

【参考方案1】:

好吧,我有多行的 spritesheet,让我们假设它包含 3 行图像,这些图像如下所示:

x, x, x, x, // moving animation images
x, x, x, x, // jumping animation images
x, x, x, x, // dying animation images

所有的图片槽的高度和宽度都是 80 像素,它们在 spritesheet 中彼此紧紧地堆叠在一起,它们的中心将是图片的中间,我使用的实际字符大小是 40 像素(宽度和高度)所以它是regX: 40regY: 40 和 spritesheet img 大小将是 320px 宽度和高度。 (因为 80px * 4 = 320px 的四个插槽)。

我会这样访问它们:

var localSpriteSheet = new createjs.SpriteSheet(
        images: [imgPlayer],
        frames: width:80, height:80, regX:40, regY:40,
        animations: 
            moving: [0,3],
            jumping: [4,7],
            dead: [8,11]
        
);

我想你在这里看到了模式,例如 jumping 的起始编号是 4,因为图块编号从 0 开始。

所以上面的 tilesheet 的实际插槽是这些:

0, 1, 2, 3, // moving animation images
4, 5, 6, 7, // jumping animation images
8, 9, 10, 11, // dying animation images

希望这对您有所帮助 - 您只需要观看动画“移动”的 spritesheet 起始位置并使其从该位置开始。

// takes 4 images from first line
move: [0, 3] 

// takes 4 images from second line (If spritesheet has 4 images on each line).
jump: [4, 7] 

希望这会有所帮助!

【讨论】:

你成功了,伙计!感谢您的提醒,我不知道自动文档/示例不清楚,或者我错过了它

以上是关于EaselJS MultiRow Spritesheet的主要内容,如果未能解决你的问题,请参考以下文章

easelJS 初始入门

EaselJS:在属性更改时更新形状颜色

easelJS入门事件spritesheet

画布高度由 EaselJS 更改。如何避免这种情况?

Easeljs 使用 mousemove 旋转对象

Easeljs 可滚动容器