Parámetros
Parte de la sección Python en una ventana de juego del Journey de Pygame de Coddy. Lección 21 de 32.
Una función que siempre dibuja en (320, 240) sirve de poco. Los parámetros permiten que quien llama a la función elija. Ponles nombre entre los paréntesis de def y úsalos en el cuerpo como variables:
def draw_star(x, y):
pygame.draw.line(screen, (255, 240, 200), (x - 10, y), (x + 10, y), 2)
pygame.draw.line(screen, (255, 240, 200), (x, y - 10), (x, y + 10), 2)
pygame.draw.circle(screen, (255, 240, 200), (x, y), 4)Cada llamada pasa valores, los argumentos, en el mismo orden: draw_star(120, 100) ejecuta el cuerpo con x igual a 120 e y igual a 100. draw_star(520, 90) lo ejecuta otra vez con otros valores. Una definición, tantas estrellas como veces la llames.
Los parámetros existen solo dentro de la función mientras se ejecuta. Fuera de ella, x e y no significan nada, o significan lo que hayas almacenado con esos nombres.
Desafío
IntermedioDeja que quien llama coloque la estrella:
- Cambia la definición a
def draw_star(x, y):y dibuja alrededor de (x, y): las líneas desdex - 10hastax + 10y desdey - 10hastay + 10, el punto en(x, y). - Llámala tres veces: en (120, 100), (320, 180) y (520, 90).
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()
# Prepara todo aquí, antes del bucle del juego.
def draw_star():
pygame.draw.line(screen, (255, 240, 200), (310, 240), (330, 240), 2)
pygame.draw.line(screen, (255, 240, 200), (320, 230), (320, 250), 2)
pygame.draw.circle(screen, (255, 240, 200), (320, 240), 4)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Haz los cambios aquí, una vez por fotograma.
screen.fill((20, 24, 48))
# Dibuja aquí, después de rellenar la pantalla.
draw_star()
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