Rivolgiti nella direzione in cui voli
Fa parte della sezione Sprite e immagini del percorso Pygame di Coddy. Lezione 7 di 36.
La nave è rivolta verso l’alto nel file. Ruotata con rotate(ship, -90), è rivolta verso destra, una direzione adatta a una nave che vola di lato. Quando vola verso sinistra, dovrebbe essere rivolta verso sinistra.
pygame.transform.flip(image, flip_x, flip_y) ti restituisce una copia speculare. True, False la specchia da sinistra a destra; False, True la specchia dall’alto verso il basso.
ship_right = pygame.transform.rotate(ship, -90)
ship_left = pygame.transform.flip(ship_right, True, False)Entrambe le immagini vengono create una sola volta, prima del ciclo. Il gioco ricorda poi quale mostrare in una variabile, e i tasti la cambiano:
if keys[pygame.K_LEFT]:
ship_rect.x -= 5
image = ship_leftDisegna image a ogni fotogramma. Quando non viene tenuto premuto alcun tasto, image mantiene il suo ultimo valore, così la nave continua a essere rivolta nella direzione in cui ha volato l’ultima volta.
Sfida
Medio- Prima del ciclo, crea
ship_left:ship_rightcapovolto da sinistra a destra. - Imposta
image = ship_rightprima del ciclo. - Tenendo premuto Left, imposta
image = ship_left; tenendo premuto Right, impostaimage = ship_right. Il movimento resta invariato. - Disegna
imagein corrispondenza diship_rect.
Provalo tu
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Face the Way You Fly")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_right = pygame.transform.rotate(ship, -90)
ship_rect = ship_right.get_rect(center=(320, 240))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
ship_rect.x -= 5
if keys[pygame.K_RIGHT]:
ship_rect.x += 5
ship_rect.clamp_ip(screen.get_rect())
screen.fill((20, 22, 40))
screen.blit(ship_right, ship_rect)
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