Menu
CoddyTech

Spostare l'immagine

Fa parte della sezione Sprite e immagini del percorso Pygame di Coddy. Lezione 3 di 36.

La nave si trova nella parte inferiore della finestra. Per farla volare a sinistra e a destra, sposta il suo Rect con i tasti freccia, come hai fatto con il quadrato nella sezione 2:

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
    ship_rect.x -= 6
if keys[pygame.K_RIGHT]:
    ship_rect.x += 6

La riga blit non cambia: disegna la nave nel punto in cui si trova ora il Rect.

Un Rect può mantenersi all'interno di un altro Rect. screen.get_rect() è il Rect della finestra, (0, 0, 640, 480), e

ship_rect.clamp_ip(screen.get_rect())

riporta ship_rect al suo interno quando sporge. _ip significa «in place»: modifica ship_rect stesso. ship_rect.clamp(...) senza _ip lascia ship_rect invariato e ti restituisce invece un nuovo Rect.

challenge icon

Sfida

Facile
  1. Nel ciclo, prima di disegnare, tenendo premuto il tasto sinistro si sposta ship_rect di 6 pixel a sinistra e tenendo premuto il tasto destro lo si sposta di 6 pixel a destra.
  2. Poi mantienilo all’interno della finestra con ship_rect.clamp_ip(screen.get_rect()).

Provalo tu

import pygame

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

ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_rect = ship.get_rect(center=(320, 400))

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

    screen.fill((20, 22, 40))
    screen.blit(ship, ship_rect)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Tutte le lezioni di Sprite e immagini

Esercitati da solo: Playground Pygame