La tua prima classe
Fa parte della sezione Sprite e immagini del percorso Pygame di Coddy. Lezione 10 di 36.
La stella è rappresentata da tre variabili: star_x, star_y e star_speed. Va bene per una stella; per un cielo pieno di stelle serve un modo migliore per tenere insieme i numeri di ciascuna stella.
Una classe è un progetto per un tipo di oggetto. Ogni oggetto creato a partire da essa ha i propri valori, chiamati attributi:
class Star:
def __init__(self, x, y):
self.x = x
self.y = y
self.speed = 2
star = Star(320, 0)Star(320, 0) crea un nuovo oggetto Star. Python esegue quindi __init__ su di esso, la funzione all'interno della classe che prepara ogni nuovo oggetto (il nome, con due caratteri di sottolineatura su ciascun lato, è quello che Python cerca), con x = 320 e y = 0. Al suo interno, self è il nuovo oggetto, quindi self.x = x vi memorizza 320. Fuori dalla classe puoi accedere allo stesso valore con star.x e modificarlo allo stesso modo: star.y += star.speed.
I nomi delle classi iniziano con una lettera maiuscola: Star è il progetto, star è una stella creata a partire da esso.
Sfida
Facile- Scrivi una classe
Staril cui__init__(self, x, y)memorizzaself.x,self.yeself.speed = 2. - Sostituisci le tre variabili con
star = Star(320, 0). - Nel ciclo, usa
star.y,star.speedestar.xal posto delle vecchie variabili.
Provalo tu
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()
Tutte le lezioni di Sprite e immagini
1Caricare immagini
Caricare un'immaginePosizionarla con un rettangoloSpostare l'immagineRipetere uno sfondoPixel trasparenti2Ruota, capovolgi, ridimensiona
Ruotare attorno al centroRivolgiti nella direzione in cui voliRidimensionare un'immagineRuotare dall'originale3Classi per gli oggetti del gioco
La tua prima classeMetodiSelf è l’oggettoUna lista di oggettiOggetti con immaginiUna sottoclasse6Animazione con gli sprite sheet
Ritagliare uno sprite sheetUn contatore di frameAnimare con il tempoUn’esplosione a riproduzione singolaEsercitati da solo: Playground Pygame