Menu
CoddyTech

Elif y Else

Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 12 de 32.

else le da a if una segunda rama, para cuando la condición es falsa. elif, abreviatura de «else if», añade más condiciones entre medias:

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

Python comprueba las condiciones desde arriba, ejecuta la primera rama cuya condición sea verdadera y omite las demás. En x 100, las dos primeras condiciones son verdaderas, pero solo se ejecuta la primera rama. else no tiene condición: se ejecuta cuando ninguna de las condiciones anteriores fue verdadera.

Los if separados funcionan de otra manera: se comprueba cada uno. Con tres if, una luna en x 100 se volvería naranja y, después, el segundo volvería a ponerla amarilla.

Aquí, colour es una variable que contiene una tupla. Dibuja con ella: pygame.draw.circle(screen, colour, (moon_x, moon_y), 50).

challenge icon

Desafío

Intermedio

Colorea la luna según dónde esté. En la parte de cambio, después de las teclas:

  1. Si moon_x < 200, establece colour en naranja (255, 170, 90).
  2. Elif moon_x < 440, establécelo en el color habitual (240, 230, 160).
  3. Else establécelo en azul (160, 190, 255).
  4. Dibuja la luna con colour.

Pruébalo tú mismo

import pygame

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

# Configura todo aquí, antes del bucle del juego.
moon_x = 320
moon_y = 240

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

    # Actualiza todo aquí, una vez por fotograma.
    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))
    # Dibuja aquí, después de rellenar la pantalla.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)

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

pygame.quit()

Todas las lecciones de Python en una ventana de juego

Practica por tu cuenta: Playground de Pygame