Я бы хотел лучше понять, как люди в реальном мире справляются со своей анимацией.
Вы загружаете 1 большое изображение, а затем рисуете разные прямоугольники, основываясь на кадре анимации?
Вы загружаете файлы изображений X в массив и рисуете элемент в массиве, основываясь на кадре анимации?
Как вы справляетесь с анимацией разной длины для разных спрайтов?
Скажем, ходьба персонажа занимает 4 - 8 кадров, а волны на пляже - 2 - 3 кадра. Как бы вы справились с этой ситуацией? См. ниже
Dim Waves(1) as Sprite
Dim Char(5) as Sprite
Sub Animate()
Frame += 1
Draw Char(Frame)
Draw Waves(Frame)
If Frame = 5 Then Frame = 0
End Sub
Очевидно, что в результате Waves возникнет ошибка «за пределами границ».
Или ваш спрайт беспокоится о собственной анимации, а не о кадре вообще. Каждый спрайт знает свой собственный цикл анимации?