Обратите внимание, как вы импортируете images123
, который затем импортирует из final_game
. Это не очень хорошая модель, поскольку она ведет к круговому импорту. Хотя циклический импорт может работать, он может привести к проблемам в разных точках.
В сущности, ваша проблема связана не с импортом, а с тем, как вы начали писать код. Вы хотите, чтобы размеры вашего изображения основывались на объекте player (именно поэтому вам нужно final_game.man
для запуска images123
), так что было бы более разумно иметь это как часть player инициализация объекта. В конце концов вы можете захотеть удалить его дальше, используя подклассы, но сейчас я бы просто предложил добавить метод для его обработки. Это также вывело бы большинство переменных изображения из глобального пространства, что поможет вам в долгосрочной перспективе.
Например:
class Player():
def __init__(self, [etc]):
[...]
self.formatsprites()
def formatsprites(self):
self.idle = [py.transform.scale(img,(self.width,self.length)) for img in image123.idle]
self.run_right = [py.transform.scale(img,(man.width,man.length)) for img in image123.run_right]
[...]
Оттуда вы бы изменили код так, чтобы он ссылался на self.idle
(или что бы то ни было) вместо простого idle
и удалите import final_game
и другие соответствующие строки из images123
. Вы также можете решить (так как Player
теперь содержит больше), что вы хотите переместить player
и bullets
в другой файл, как вы сделали для изображений.
Есть несколько других структурных изменений, которые вы могли бы внести, чтобы ужесточить свой код, но это часть кривой обучения, а остальное я оставлю на ваше усмотрение. Поздравляю с тем, что вы так много сделали, и удачи с остальными :) 1027 *