Найти - Пользователи
Полная версия: Книга Доусона. Почему спрайты имеют одинаковые имена?
Начало » Python для новичков » Книга Доусона. Почему спрайты имеют одинаковые имена?
1
panama555
Привет.
Изучаю книгу Доусона. Делаю игру в которой нужно ловить пиццу сковородой.
“Сумасшедший повар” через определённые промежутки времени создаёт спрайты в виде пиццы которые падают вниз.
Но создаёт он спрайты пиццы с одним и тем же именем!
Я думал, что если я создам объект класса с тем же именем, то старый объект будет уничтожен, а новый появится. А здесь и новый объект появляется и старый остаётся.
Как это может быть?
Кто читал книгу - подскажите!
Спасибо
PEHDOM
panama555
Я думал, что если я создам объект класса с тем же именем, то старый объект будет уничтожен, а новый появится. А здесь и новый объект появляется и старый остаётся.Как это может быть?
Ну не видя вашего кода, трудно чточто сказать(а искать и читать книгу Доусона, сами понимаете..), нов пайтоне у каждого объекта есть счетчик, который показывает сколько переменных на него ссылаються, когда счетчик становиться равный 0, сборщик мусора его удаляет. Соответсвенно если старый обьект остаеться значит гдето на него ссылаеться какаято переменная(элемент списка/значение словаряи тд…), но повторюсь не видя кода ничего конкретного сказать нельзя.
panama555
Прикладываю файл из книги.
в этом месте:
 def check_drop(self):
        """ Decrease countdown or drop pizza and reset countdown. """
        if self.time_til_drop > 0:
            self.time_til_drop -= 1
        else:
            new_pizza = Pizza(x = self.x)
            games.screen.add(new_pizza)
            # set buffer to approx 30% of pizza height, regardless of pizza speed   
            self.time_til_drop = int(new_pizza.height * 1.3 / Pizza.speed) + 1 
строка:
new_pizza = Pizza(x = self.x)
marvellik
panama555
 games.screen.add(new_pizza)
в games.screen который вы добавляете экземпляры класса Pizza хоть и с одним именем но возможно разными параметрами. а вот где то в games они рисуются как разные объекты (тут уж нужно лезть в дебри)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB