Aparecer por el otro lado
Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 10 de 32.
Un if ejecuta sus líneas solo cuando una condición es verdadera:
if comet_x > 640:
comet_x = 0La condición termina con dos puntos. Las líneas que están debajo llevan una sangría de 4 espacios: pertenecen al if. Python comprueba la condición en cada fotograma. Mientras el cometa está dentro de la ventana, es falsa y no ocurre nada. Cuando el cometa pasa el borde derecho, es verdadera y el cometa vuelve a la izquierda.
Una comparación es True o False. > significa mayor que, < menor que y == pregunta si dos valores son iguales. Un = asigna un valor; dos comparan.
Comprueba un rango, como > 640, no un valor exacto. El cometa empieza en 50 y se mueve 3 píxeles por fotograma: 635, 638, 641. Nunca llega a 640, así que comet_x == 640 nunca sería verdadero.
Desafío
FácilDespués de la línea que mueve el cometa, agrega un if: cuando comet_x sea mayor que 640, establece comet_x en 0. Así, el cometa vuelve a cruzar la ventana una y otra vez.
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 las cosas aquí, antes del bucle del juego.
moon_x = 160
moon_y = 120
comet_x = 50
comet_y = 200
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Cambia las cosas aquí, una vez por fotograma.
comet_x = comet_x + 3
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.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)
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