El corredor
Parte de la sección Reglas del juego del Journey de Pygame de Coddy. Lección 23 de 29.
En este capítulo crearás Sky Runner, un juego de carrera infinita. El corredor se mantiene cerca del borde izquierdo mientras los obstáculos llegan desde la derecha; saltas por encima de ellos tanto tiempo como puedas. Se dibujan el cielo y el suelo. El corredor es un sprite, como en la sección 3:
class Runner(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load("assets/images/player.png").convert_alpha()
self.rect = self.image.get_rect(midbottom=(100, GROUND_Y))midbottom coloca el centro del borde inferior de la imagen en un punto. Los pies del corredor están en la parte inferior de su imagen, así que midbottom=(100, GROUND_Y) lo coloca sobre el suelo en x 100, sea cual sea su altura.
GROUND_Y es la coordenada y del borde superior del suelo: 260. Todo lo que se apoya en el suelo usa ese valor, así que mover el suelo más adelante solo requiere un cambio.
Desafío
Fácil- Escribe una clase de sprite
Runnercuya imagen seaassets/images/player.pngy cuyo rectángulo tenga sumidbottomen (100,GROUND_Y). - Crea uno, llamado
runner, antes del bucle. - Dibuja
runner.imageenrunner.rectdespués de dibujar el suelo.
Pruébalo tú mismo
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 320))
pygame.display.set_caption("Sky Runner")
clock = pygame.time.Clock()
SKY = (140, 200, 240)
GROUND = (90, 160, 80)
GROUND_Y = 260
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill(SKY)
pygame.draw.rect(screen, GROUND, (0, GROUND_Y, 640, 60))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Todas las lecciones de Reglas del juego
3Temporizadores y oleadas
A salvo tras un golpeUn evento de temporizadorUna roca cada 800 msOleadas que crecenCuenta atrás para empezar6Corredor del cielo
El corredorSaltarPractica por tu cuenta: Playground de Pygame