EaselJS MultiRow 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 пикселей, они плотно уложены рядом друг с другом в таблице спрайтов, и их центр будет посередине изображения, фактический размер символов, который я использую, составляет 40 пикселей (ширина и высота), поэтому regX: 40 а также regY: 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.

Таким образом, фактические слоты для вышеуказанного листа листов:

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

Надеюсь, это поможет вам - вам просто нужно посмотреть, как начался слот вашей таблицы спрайтов анимации, и начните ее с этого момента.

// 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] 

Надеюсь это поможет!

Другие вопросы по тегам