Я делаю игру на Python с помощью Pyglet и в настоящее время пытаюсь использовать некоторые экраны меню или конечные экраны. Я создал класс Screen, и экраны (например, GameScreen) наследуются от него. Класс Screen имеет атрибут класса s, который определяет текущий отображаемый экран. Как мне назначить ему какой-нибудь объект Screen?
Это мой код:
# main.py
import pyglet
from screen import *
w = pyglet.window.Window()
@w.event
def on_draw():
w.clear()
Screen.s.on_draw()
pyglet.app.run()
# screen.py
class Screen:
s = MainMenuScreen() # of course doesn't work
def __init__(self): pass
def on_draw(self): pass
class MainMenuScreen(Screen):
def __init__(self):
self.buttons = [...]
...
def on_draw(self):
for button in self.buttons: button.draw()
class GameScreen(Screen):
def __init__(self):
self.player = Player(0, 0)
...
def on_draw(self):
self.player.draw()
Подробнее здесь: https://stackoverflow.com/questions/786 ... ited-class