Menu
CoddyTech

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.

challenge icon

Sfida

Facile
  1. Scrivi una classe sprite Runner la cui immagine sia assets/images/player.png e il cui rect abbia il suo midbottom in (100, GROUND_Y).
  2. Creane una, chiamata runner, prima del ciclo.
  3. Esegui il blit di runner.image in runner.rect dopo 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