EaselJS - Имитация более низкого FPS при определенном действии

Есть ли способ создать повторяющиеся кадры, как показано выше:

character = new createjs.SpriteSheet({
        images: [img],
        frames: {width: frameW, height: frameH, regX: frameW/2, regY: frameH/2},
        animations: { run: [0,9, "run"],
                      hit: [10,10,11,11,12,12,13,13,14,14,15,15, "idle"],
                      jmp: [18,22, "idle_jmp"],
                      idle_jmp: [22],
                      idle: [2]
             }
    });

Повторение каждого кадра при попадании дважды, чтобы имитировать более низкий FPS только при попадании, куча!


person scel.pi    schedule 08.04.2013    source источник


Ответы (2)


В дополнение к частотному решению на основе кода, предоставляемому olsn, вы также можете указать «частоту» в данных SpriteSheet.

Неверный формат для вашего образца анимации "попадания". Вы можете использовать простой формат:


hit: [startFrame, endFrame, "nextAnimation", frequency],
// For example:
hit: [10,15,"idle",2]

Или вы можете использовать более сложное определение для каждого кадра и указать другие свойства по имени:


hit: {
    frames: [10,11,12,13,14,15],
    next: "idle",
    frequency:2
}

Ознакомьтесь с основным обзором в документации SpriteSheet: http://www.createjs.com/Docs/EaselJS/classes/SpriteSheet.html

person Lanny    schedule 09.04.2013

Вы можете использовать:

character.getAnimation('run').frequency = 2 or whatever frequency you like

Вы можете установить это во время выполнения для каждой отдельной анимации.

person olsn    schedule 09.04.2013