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
Вы можете установить это во время выполнения для каждой отдельной анимации.