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 += 6La 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.
Sfida
Facile- Nel ciclo, prima di disegnare, tenendo premuto il tasto sinistro si sposta
ship_rectdi 6 pixel a sinistra e tenendo premuto il tasto destro lo si sposta di 6 pixel a destra. - 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
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