Я работаю над некоторым кодом для анимации объектов .. на данный момент у меня есть что-то вроде этого (псевдокод) ..
class Sprite:
x = 0
y = 0
def animate(fps=10):
x += blah
y += blah
time.sleep(1000 / fps)
self.animate()
mario = new Sprite()
mario.animate(fps=10)
bird = new Sprite()
bird.animate(fps=5)
Как вы можете видеть, для каждого созданного спрайта он имеет свою анимациюфункция, которая изменяет его координаты x и y, и вычисление fps просто.Я хотел бы добиться чего-то вроде этого:
instances = []
fps = 30
def animate():
for each object in instances:
# NEED AN 'IF TIME TO ANIMATE?' PART HERE.
object.x = blah
object.y = blah
time.sleep(1 / fps)
animate()
class Sprite:
x = 0
y = 0
def animate(fps = 5):
instances.append(self)
mario = new Sprite()
mario.animate(fps=10)
bird = new Sprite()
bird.animate(fps=5)
Разница между этим и первым фрагментом псевдокода заключается в том, что второй фрагмент имеет один анимационный вызов для анимации каждого объекта.Я просто не уверен, как бы вы работали, когда именно нужно анимировать каждый объект.Единственный способ, которым это будет работать (в настоящее время), это если каждый объект / спрайт имеет одинаковый FPS.