Menu
CoddyTech

Posizionarla con un rettangolo

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

Calcolare a mano un angolo in alto a sinistra significa fare somme per ogni immagine che posizioni. Ogni Surface può fornire un Rect delle proprie dimensioni:

ship_rect = ship.get_rect(center=(320, 400))

get_rect() da solo è Rect(0, 0, 64, 64). Una parola chiave lo posiziona: center, midbottom, topleft o qualsiasi altro punto di un Rect. Qui il centro della nave viene posizionato in (320, 400) e pygame calcola l'angolo, (288, 368).

Esegui il blit dell'immagine sul Rect e questa verrà posizionata nell'angolo in alto a sinistra del Rect:

screen.blit(ship, ship_rect)

Ora il Rect indica la posizione della nave. Modifica ship_rect.x o ship_rect.centery e il fotogramma successivo disegnerà la nave in quella posizione. È così che si muove ogni immagine in un gioco: mantieni un Rect, modifica il Rect, esegui il blit sul Rect. È anche il Rect con cui verifichi le collisioni, come nella sezione 2.

challenge icon

Sfida

Facile
  1. Dopo aver caricato ship, crea ship_rect = ship.get_rect(center=(320, 400)).
  2. Disegna ship in ship_rect invece che in un punto fisso.

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()

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, (288, 208))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Sprite e immagini

Esercitati da solo: Playground Pygame