Il corridore
Fa parte della sezione Regole di gioco del percorso Pygame di Coddy. Lezione 23 di 29.
Questo capitolo sviluppa Sky Runner, un gioco di corsa senza fine. Il corridore rimane vicino al bordo sinistro mentre gli ostacoli arrivano da destra; tu salti sopra di essi per tutto il tempo che riesci. Il cielo e il terreno sono disegnati. Il corridore è uno sprite, come nella sezione 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 posiziona il centro del bordo inferiore dell'immagine su un punto. I piedi del corridore si trovano nella parte inferiore della sua immagine, quindi midbottom=(100, GROUND_Y) lo colloca sul terreno a x 100, qualunque sia la sua altezza.
GROUND_Y è la coordinata y del bordo superiore del terreno, 260. Tutto ciò che poggia sul terreno usa questo valore, quindi spostare il terreno in seguito richiede una sola modifica.
Sfida
Facile- Scrivi una classe sprite
Runnerla cui immagine siaassets/images/player.pnge il cui rect abbia il suomidbottomin (100,GROUND_Y). - Creane una, chiamata
runner, prima del ciclo. - Esegui il blit di
runner.imageinrunner.rectdopo aver disegnato il terreno.
Provalo tu
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()
Tutte le lezioni di Regole di gioco
Esercitati da solo: Playground Pygame