редактировать: я прошу совета / правильную структуру для кода
Текущий макет (что, вероятно, неправильно):
Game
хранит player
, screen
и units
.
Game
обрабатывает логику верхнего уровня, пользовательский ввод и т. Д.
screen
и player
используются во всей программе
units
список изменен (добавлен + удален) в игре
Если я хочу получить доступ к списку units
или Game.spawn_foo()
или Game.width
, как мне реструктурировать мой код?
- Так что unit.py может иметь доступ к экземпляру
Game()
?
Код: (обновлено)
game.py
class Game(object):
def __init__(self):
self.screen = # video
self.player = Player()
self.units = [Unit(), Unit()]
def loop(self):
while True:
self.screen.blit( self.player.sprite, self.player.location )
for u in self.units:
self.screen.blit( u.sprite, u.location )
def spawn_foo(self):
# tried to call from Unit() or Player()
self.units.append( ...rand Unit()... )
if __name__ == '__main__':
game = Game()
game.loop()
unit.py, использует func или методы
class Unit(object):
def __init__(self, game):
self.sprite = # image
self.location = (0, 0)
def teleport(self):
# attempt to use game here
x = game.width / 2,
y = game.height / 2
self.location = (x, y)