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.
Sfida
Facile- Dopo aver caricato
ship, creaship_rect = ship.get_rect(center=(320, 400)). - Disegna
shipinship_rectinvece 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()
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Sprite e immagini
1Caricare immagini
Caricare un'immaginePosizionarla con un rettangoloSpostare l'immagineRipetere uno sfondoPixel trasparenti2Ruota, capovolgi, ridimensiona
Ruotare attorno al centroRivolgiti nella direzione in cui voliRidimensionare un'immagineRuotare dall'originale3Classi per gli oggetti del gioco
La tua prima classeMetodiSelf è l’oggettoUna lista di oggettiOggetti con immaginiUna sottoclasse6Animazione con gli sprite sheet
Ritagliare uno sprite sheetUn contatore di frameAnimare con il tempoUn’esplosione a riproduzione singolaEsercitati da solo: Playground Pygame