0

我有一个小问题,我使用的是多行 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 的帧。

提前致谢 !

4

1 回答 1

2

好吧,我有多行的 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: 40spritesheet 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] 

希望这可以帮助!

于 2013-03-08T08:29:05.720 回答