Metodi
Fa parte della sezione Sprite e immagini del percorso Pygame di Coddy. Lezione 11 di 36.
I numeri della stella sono ora nella classe, ma le regole che li riguardano, come cade e come viene disegnata, sono ancora nel ciclo. Le funzioni scritte all'interno di una classe sono metodi e mettono le regole accanto ai dati:
class Star:
# __init__ come prima
def update(self):
self.y += self.speed
if self.y > 480:
self.y = 0
def draw(self, screen):
pygame.draw.circle(screen, (255, 255, 255), (self.x, self.y), 4)Il primo parametro di ogni metodo è self, l'oggetto su cui opera. Chiami un metodo su un oggetto usando un punto, e la Surface di pygame viene passata come qualsiasi altro argomento:
star.update()
star.draw(screen)Ora il ciclo principale descrive ciò che accade in un fotogramma: aggiorna la stella, poi disegnala. Gli oggetti di gioco nei programmi pygame hanno quasi sempre questi due metodi, update e draw.
Sfida
Medio- Aggiungi un metodo
update(self)aStar: aggiungeself.speedaself.ye riporta la stella ay = 0una volta cheself.ysupera 480. - Aggiungi
draw(self, screen): il cerchio bianco, con raggio 4, in corrispondenza di(self.x, self.y). - Nel ciclo, chiama
star.update()e, dopo il riempimento,star.draw(screen).
Provalo tu
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Falling Star")
clock = pygame.time.Clock()
class Star:
def __init__(self, x, y):
self.x = x
self.y = y
self.speed = 2
star = Star(320, 0)
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()
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
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