Menu
CoddyTech

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.

challenge icon

Sfida

Medio
  1. Aggiungi un metodo update(self) a Star: aggiunge self.speed a self.y e riporta la stella a y = 0 una volta che self.y supera 480.
  2. Aggiungi draw(self, screen): il cerchio bianco, con raggio 4, in corrispondenza di (self.x, self.y).
  3. 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()
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Sprite e immagini

Esercitati da solo: Playground Pygame