Visualización de nevadas usando Pygame en Python

No todo el mundo debe haber presenciado Snowfall personalmente, pero espera un minuto. ¿Qué pasa si puedes ver la nevada directamente en tu pantalla con solo unas pocas líneas de creatividad y programación?

 Antes de comenzar con el tema, es muy recomendable revisar los conceptos básicos de Pygame. 

Pasos para la creación de nevadas

1. Importación de módulos

Primero, necesitamos importar el módulo Pygame usando el comando.

importar pygame
 

Además, junto con Pygame, también necesitaremos un módulo aleatorio. Python tiene un módulo incorporado que puede usar para hacer números aleatorios simplemente importando un módulo aleatorio.

importar al azar
 

2. Inicializa el motor del juego 

Simplemente significa elegir los colores que desea utilizar. En el mundo de la programación, lo que creas que puedes hacer. Al final del artículo, encontrarás una nevada verde sobre un fondo blanco.

Python3

# initialize
pygame.init()
 
# chosen colours will be used
# to display the output
WHITE = [255, 255, 255]
GREEN = [0, 255, 0]

3. Especificar el tamaño de la pantalla 

 Puede ser un número nuevo dependiendo de la resolución de su sistema.

Python3

# specify the size
 
SIZE = [400, 400]
screen = pygame.display.set_mode(SIZE)

4. Asigne un nombre a la pantalla de su ventana de nevadas

El nombre dado se puede ver en la esquina izquierda de la ventana de resultados.

Python3

# caption for output window
 
pygame.display.set_caption("Programming World of GFG")

5. Crea una array vacía para tu nevada 

Python3

snowFall = []

 
6. Bucles para obtener posiciones de nevadas

Haga un ciclo y ejecute 50 veces y agregue una nevada en una posición x, y aleatoria usando el Módulo aleatorio. 

Python3

for i in range(50):
    x = random.randrange(0, 400)
    y = random.randrange(0, 400)
    snowFall.append([x, y])

7. Seguimiento del tiempo

Crear un objeto para ayudar a controlar el tiempo

Python3

# object to track time
 
clock = pygame.time.Clock()

8. Establecer criterios para la ocurrencia de nevadas

 La nevada debe ocurrir hasta que el usuario presione el botón de cerrar y para esto dentro del ciclo while , use un ciclo for .

Python3

# loop till the close button is pressed
done = False
 
while not done:
 
  # User did something
    for event in pygame.event.get():
 
       # If user clicked close
        if event.type == pygame.QUIT:
 
          # Flag that we are done so
          # we exit this loop
            done = True

9. Configure el fondo de la pantalla:

Python3

screen.fill(WHITE)

 
10. Procesa la nevada

Ahora use un ciclo for para procesar cada Snowfall en la lista: 

Python3

for i in range(len(snowFall)):

11. Dibuja la nevada 

Python3

pygame.draw.circle(screen, GREEN, snowFall[i], 2)

      

12. Agregando movimiento

Python3

# Move the snowFall down one pixel
        snowFall[i][1] += 1
 
        # If the snowFall has moved off the bottom of the screen
        if snowFall[i][1] > 400:
         
            # Reset it just above the top
            y = random.randrange(-50, -10)
            snowFall[i][1] = y
             
            # Give it a new x position
            x = random.randrange(0, 400)
            snowFall[i][0] = x
 
    # Go ahead and update the screen with what we've drawn.
    pygame.display.flip()
    clock.tick(20)
pygame.quit()

Y sí, ¡ha comenzado la nevada verde!

Programa Completo

Python3

import pygame
import random
pygame.init()
 
WHITE = [255, 255, 255]
GREEN  = [0,255,0]
SIZE = [400, 400]
 
screen = pygame.display.set_mode(SIZE)
pygame.display.set_caption("Programming World of GFG")
 
snowFall = []
for i in range(50):
    x = random.randrange(0, 400)
    y = random.randrange(0, 400)
    snowFall.append([x, y])
 
clock = pygame.time.Clock()
done = False
while not done:
 
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
            done = True
    screen.fill(WHITE)
    for i in range(len(snowFall)):
        pygame.draw.circle(screen, GREEN, snowFall[i], 2)
 
        snowFall[i][1] += 1
        if snowFall[i][1] > 400:
            y = random.randrange(-50, -10)
            snowFall[i][1] = y
        
            x = random.randrange(0, 400)
            snowFall[i][0] = x
 
    pygame.display.flip()
    clock.tick(20)
pygame.quit()

Producción

Publicación traducida automáticamente

Artículo escrito por anshitaagarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *