Menu
CoddyTech

Métodos

Parte de la sección Sprites e imágenes del Journey de Pygame de Coddy. Lección 11 de 36.

Los números de la estrella ahora están en la clase, pero las reglas que los rigen, cómo cae y cómo se dibuja, siguen en el bucle. Las funciones escritas dentro de una clase son métodos, y colocan las reglas junto a los datos:

class Star:
    # __init__ como antes

    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)

El primer parámetro de cada método es self, el objeto sobre el que trabaja. Se llama a un método de un objeto con un punto, y la Surface de pygame se pasa como cualquier otro argumento:

star.update()
star.draw(screen)

El bucle principal ahora describe lo que ocurre en un fotograma: actualizar la estrella y después dibujarla. Los objetos de juego en los programas de pygame casi siempre tienen estos dos métodos: update y draw.

challenge icon

Desafío

Intermedio
  1. Añade un método update(self) a Star: suma self.speed a self.y y devuelve la estrella a y = 0 cuando self.y supera 480.
  2. Añade draw(self, screen): el círculo blanco, de radio 4, en (self.x, self.y).
  3. En el bucle, llama a star.update() y, después del relleno, a star.draw(screen).

Pruébalo tú mismo

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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Sprites e imágenes

Practica por tu cuenta: Playground de Pygame