Исходя из предоставленного кода, похоже, что вы смешиваете класс с объектом (экземпляр) этого класса.
player
Вот класс, из которого вы могли бы создавать объекты.Сам класс player
не имеет атрибутов класса (т. Е. Переменных, общих для всех членов класса);он имеет только атрибуты instance (переменные, уникальные для отдельных экземпляров класса).Таким образом, ожидаемое использование заключается в том, что вы создаете один или несколько экземпляров (возможно, глобальных для вашей программы) и работаете с ними.
Таким образом, я думаю, что вам нужно в три раза:
- Длясоздайте объект
player
следующим образом: the_player = player(starting_x, starting_y, multiplier, starting_fps)
Добавьте параметр для этого player
в инициализатор вашего enemy
, например:
class enemy(object):
def __init__(self, player_to_track, fps, difficulty):
self.player_to_track = player_to_track
- Передайте
the_player
объекту enemy
, который вы создаете.
(Многие люди придерживаются соглашения, заключающегося в том, что имена классов пишутся с большой буквы, а экземпляры строчными.это различие очевидно при чтении кода - вы получаете что-то вроде my_player = Player( . . . )
, и если вы когда-нибудь напишите Player.foo
, это поможет вспомнить, что вы говорите об атрибуте class , а не о членской переменной.)