Menu
CoddyTech

Elif e else

Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 12 di 32.

else aggiunge a un if un secondo ramo, da eseguire quando la condizione è falsa. elif, abbreviazione di "else if", aggiunge altre condizioni intermedie:

if moon_x < 200:
    colour = (255, 170, 90)
elif moon_x < 440:
    colour = (240, 230, 160)
else:
    colour = (160, 190, 255)

Python verifica le condizioni dall'alto, esegue il primo ramo la cui condizione è vera e salta il resto. Con x 100, le prime due condizioni sono entrambe vere, ma viene eseguito solo il primo ramo. else non ha una condizione: viene eseguito quando nessuna delle condizioni precedenti era vera.

Gli if separati funzionano diversamente: ciascuno viene verificato. Con tre if, una luna a x 100 diventerebbe arancione e poi il secondo la renderebbe di nuovo gialla.

Qui colour è una variabile che contiene una tupla. Disegna usando questa variabile: pygame.draw.circle(screen, colour, (moon_x, moon_y), 50).

challenge icon

Sfida

Medio

Colora la luna in base alla sua posizione. Nella parte delle modifiche, dopo i tasti:

  1. Se moon_x < 200, imposta colour sul colore arancione (255, 170, 90).
  2. Elif moon_x < 440, impostalo sul colore abituale (240, 230, 160).
  3. Altrimenti impostalo sul colore blu (160, 190, 255).
  4. Disegna la luna con colour.

Provalo tu

import pygame

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

# Prepara tutto qui, prima del ciclo di gioco.
moon_x = 320
moon_y = 240

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

    # Modifica gli elementi qui, una volta per fotogramma.
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        moon_x = moon_x - 4
    if keys[pygame.K_RIGHT]:
        moon_x = moon_x + 4

    screen.fill((20, 24, 48))
    # Disegna qui, dopo aver riempito lo schermo.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Tutte le lezioni di Python in una finestra di gioco

Esercitati da solo: Playground Pygame