Sua primeira classe
Parte da seção Sprites e imagens do Journey de Pygame da Coddy. Lição 10 de 36.
A estrela é composta por três variáveis: star_x, star_y e star_speed. Tudo bem para uma estrela; um céu cheio delas precisa de uma maneira melhor de manter juntos os números de cada estrela.
Uma classe é um plano para um tipo de objeto. Cada objeto criado a partir dela carrega seus próprios valores, chamados atributos:
class Star:
def __init__(self, x, y):
self.x = x
self.y = y
self.speed = 2
star = Star(320, 0)Star(320, 0) cria um novo objeto Star. Em seguida, Python executa __init__ nele, a função dentro da classe que prepara cada novo objeto (o nome, com dois sublinhados de cada lado, é um que Python procura), com x = 320 e y = 0. Dentro dela, self é o novo objeto, então self.x = x armazena 320 nele. Fora da classe, você acessa o mesmo valor como star.x e o altera da mesma maneira: star.y += star.speed.
Os nomes das classes começam com uma letra maiúscula: Star é o plano, star é uma estrela criada a partir dele.
Desafio
Fácil- Escreva uma classe
Starcujo__init__(self, x, y)armazeneself.x,self.yeself.speed = 2. - Substitua as três variáveis por
star = Star(320, 0). - No loop, use
star.y,star.speedestar.xno lugar das variáveis antigas.
Experimente você mesmo
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()
Todas as lições de Sprites e imagens
1Carregando imagens
Carregue uma imagemPosicione-a com um RectMova a imagemLadrilhe o plano de fundoPixels transparentes2Girar, Inverter, Redimensionar
Girar em torno do centroFicar de frente para a direção do vooRedimensionar uma imagemGirar a partir do original3Classes para Objetos de Jogos
Sua primeira classeMétodosSelf é o objetoUma lista de objetosObjetos com imagensUma subclasse6Animação com Sprite Sheets
Recorte uma Sprite SheetUm contador de quadrosAnime com o tempoUma explosão de disparo únicoPratique por conta própria: Playground de Pygame