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 только при попадании в действие!

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

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

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

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

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