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.
Desafío
Intermedio- Añade un método
update(self)aStar: sumaself.speedaself.yy devuelve la estrella ay = 0cuandoself.ysupera 480. - Añade
draw(self, screen): el círculo blanco, de radio 4, en(self.x, self.y). - En el bucle, llama a
star.update()y, después del relleno, astar.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()
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
1Cargar imágenes
Cargar una imagenColocarla con un rectánguloMover la imagenRepetir un fondo en mosaicoPíxeles transparentes2Girar, voltear y escalar
Girar alrededor del centroApuntar en la dirección del vueloEscalar una imagenGirar desde la imagen original5Colisiones precisas a nivel de píxel
Los rectángulos parecen injustosMáscarasSprites precisos a nivel de píxelHitboxes circulares3Clases para objetos del juego
Tu primera claseMétodosSelf es el objetoUna lista de objetosObjetos con imágenesUna subclase6Animación con hojas de sprites
Recortar una hoja de spritesUn contador de fotogramasAnimar con el tiempoUna explosión de una sola vezPractica por tu cuenta: Playground de Pygame