В проекте, над которым я работаю, у меня есть несколько классов, в каждом из которых я хочу иметь функцию обновления при создании объекта. Как заставить эти функции обновления запускаться в каждом кадре? то есть для этого примера кода, как мне заставить оба класса a и b запускать функции обновления?
from ursina import *
app = Ursina()
class a:
def update(self):
print("a updating")
class b:
def update(self):
print("b updating")
a = a()
b = b()
app.run()
На данный момент ни одна из функций не запускается. Любая помощь приветствуется
Чтобы обновление запускалось автоматически, оно должно быть на объекте. Просто наследуйте Entity следующим образом:
class A(Entity):
def update(self):
print('update')
Это работает следующим образом: когда вы создаете экземпляр Entity, ursina добавляет его в список (scene.entities). Каждый кадр ursina будет перебирать этот список и вызывать entity.update(), если у этого объекта есть метод с именем update
Каждый раз, когда создается объект, вызывается метод
__init__
. Таким образом, вы можете выполнить некоторую инициализацию там.