Menu
CoddyTech

La nave de patrulla

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

Es hora de crear un juego completo: Star Patrol. Oleadas de naves enemigas descienden desde la parte superior. Tu nave patrulla la parte inferior de la ventana, se mueve a izquierda y derecha y dispara láseres hacia arriba. Destruye todas las oleadas para ganar; si dejas pasar a tres enemigos o chocas contra ellos, se acaba el juego.

Todos los objetos del juego serán sprites: el jugador, sus láseres, los enemigos y sus explosiones. El jugador va primero, como en el capítulo 4:

class Player(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = ship_image
        self.rect = self.image.get_rect(midbottom=(320, 470))

Carga ship_image una sola vez, después de crear la ventana. Su método update mueve el Rect con las flechas y lo mantiene dentro de la ventana. El bucle principal llama a player.update() y dibuja la nave.

Este capítulo amplía el mismo programa lección a lección, así que conserva los nombres que indican las tareas: las comprobaciones encuentran las partes del juego por esos nombres.

challenge icon

Desafío

Intermedio
  1. Carga assets/images/ship.png en ship_image.
  2. Escribe class Player(pygame.sprite.Sprite): imagen ship_image, un Rect con el centro inferior en (320, 470) y un update que lo mueva 6 píxeles por fotograma con las teclas izquierda y derecha y lo mantenga dentro de la ventana.
  3. Crea player = Player(); en cada fotograma, llama a player.update() y dibuja player.image en player.rect después del relleno.

Pruébalo tú mismo

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Star Patrol")
clock = pygame.time.Clock()

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((12, 14, 30))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Todas las lecciones de Sprites e imágenes

Practica por tu cuenta: Playground de Pygame