Ваш первый класс
Часть раздела Спрайты и изображения путешествия по Pygame на Coddy. Урок 10 из 36.
Звезда — это три переменные: star_x, star_y и star_speed. Для одной звезды этого достаточно; для неба, полного звёзд, нужен более удобный способ хранить числа каждой звезды вместе.
Класс — это план для определённого типа объекта. Каждый созданный на его основе объект хранит собственные значения, называемые атрибутами:
class Star:
def __init__(self, x, y):
self.x = x
self.y = y
self.speed = 2
star = Star(320, 0)Star(320, 0) создаёт новый объект Star. Затем Python запускает для него __init__ — функцию внутри класса, которая настраивает каждый новый объект (это имя, окружённое с обеих сторон двумя символами подчёркивания, ищет Python), — с x = 320 и y = 0. Внутри self — это новый объект, поэтому self.x = x сохраняет в нём значение 320. За пределами класса получить то же значение можно через star.x, а изменить его можно так же: star.y += star.speed.
Имена классов начинаются с заглавной буквы: Star — это план, а star — созданная по нему звезда.
Задание
Легко- Создай класс
Star, в котором__init__(self, x, y)сохраняетself.x,self.yиself.speed = 2. - Замени три переменные на
star = Star(320, 0). - В цикле используй
star.y,star.speedиstar.xвместо прежних переменных.
Попробуйте сами
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Falling Star")
clock = pygame.time.Clock()
star_x = 320
star_y = 0
star_speed = 2
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
star_y += star_speed
if star_y > 480:
star_y = 0
screen.fill((20, 22, 40))
pygame.draw.circle(screen, (255, 255, 255), (star_x, star_y), 4)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Все уроки раздела Спрайты и изображения
1Загрузка изображений
Загрузить изображениеРазместить его с помощью RectПереместить изображениеЗамостить фонПрозрачные пиксели2Поворот, отражение, масштабирование
Вращение вокруг центраПовернись в направлении полётаИзменение масштаба изображенияВращение от исходного изображения5Пиксельно точные столкновения
Прямоугольники кажутся несправедливымиМаскиПиксельно точные спрайтыКруглые хитбоксы3Классы игровых объектов
Ваш первый классМетодыSelf — это объектСписок объектовОбъекты с изображениямиПодкласс6Анимация с помощью листов спрайтов
Разрезать лист спрайтовСчётчик кадровАнимация по времениОднократная анимация взрываПотренируйтесь самостоятельно: Песочница Pygame