Вы не дали достаточно информации об окружающей среде, запланированном дизайн игры, и текущей структуре двигателя, чтобы предложить что-либо конкретное, так вот общий совет:
Там не одно оптимальное решение. Получите что-то рисунок, а затем используйте его, пока он не начнет ломаться, а затем повторите попытку; это очень связанная с игрой проблема, и игровой дизайн основан на итерации, поэтому доведение итерации до уровня двигателя (а не раздражение и попытка придумать «идеальное решение» из ворот) заканчивается тем, что лучший способ изучить этот аспект геймплея. Некоторые примеры того, насколько ваше решение может быть различным:
Если у вас есть анимация, основанная на простом цикле кадров, в то время как «субъект игрока» находится в определенном состоянии (например, ходить, прыгать, простаивать), тогда вы сохраняете рамку счетчик, увеличивайте его с помощью timestep игры и рисуйте кадры по счетчику.
Если у вас есть анимация, для которой требуется много контекстуальной информации для правильной отображения, например, поворот на разные облицовки, захват на уступы и т. Д., То вы добавляете дополнительные проверки состояния вместе с счетчиком кадров, и если есть достаточно форм состояния, которые вы, возможно, захотите формализовать, как конечный конечный автомат, запускают каждый кадр. У вас также может быть какой-то процедурный эффект, связанный с состоянием сущности: вращение, мигание, масштабирование, шейдеры ...
Если анимация запускает события геймплея (например, бросает удар), вам придется решить, следует ли размещать эту информацию непосредственно в коде анимации или ввести механизм, управляемый данными для «пожара этого события сейчас, создать этот объект, включить этот столкновение ...»
Тогда есть такие детали, как точки происхождения, размер изображения (размер может изменение времени для некоторых анимаций), переменные скорости воспроизведения ....
Как я уже сказал, не пытайтесь найти идеальное решение. Это зависит от того, что нужно игре.
Я не всегда использую окна. В конце концов, это должна быть кросс-платформенная игра. – MrFronk
:) отсюда моя квалификация. – Rick