Rápido Sketching de programas en Pygame
Fecha: September 28th, 2009 | Categoría: Python | 9 Comments »Hoy en el recreo me aburría y empecé a escribir boludeces en la netbook de un amigo (demoré una banda por el f*cking tecladito). Pensé que estaría bueno blogear sobre esto, ya que últimamente estuve haciendo muchas de estas pavadas.
-
import pygame
Y con eso empieza la magia.
-
screen = pygame.display.set_mode((640,460))
Dos líneas de código y ya hay algo en la pantalla! Si usamos el intérprete, los resultados son inmediatos. Recomiendo IPython.
-
cuadraditos = [ ]
-
x, y = 0,0
Un par de inicialización de variables.
-
while True:
-
for evento in pygame.event.get():
-
if evento.type == pygame.MOUSEMOTION:
-
x, y = evento.pos
-
if evento.type == pygame.MOUSEBUTTONDOWN:
-
cuadrados.append((x-5,y-5))
Manejamos un par de eventos. Si se mueve el ratón, actualizamos la posición del mismo en las variables x, y; Si se hace click, vamos a agregar la posición (menos 5 en cada coordenada, ya vamos a ver por qué)
-
screen.fill((0,0,0))
-
for caja in cuadrados:
-
color = (randint(0,255), randint(0,255), randint(0,255))
-
pygame.draw.rect(screen, color, (caja, (10,10)))
-
pygame.draw.rect(screen, (255,255,255), ((x-5,y-5), (10,10)))
-
pygame.display.flip()
Línea 1: Borramos lo que había antes en la pantalla.
Línea 2, 3, 4: Para cada cosa guardada en la lista, elegimos un color al azar, y dibujamos un cuadradito de ese color en la pantalla, en la posición donde lo creamos. (hice trampa y me salteé la linea "from random import randint" para que quede más impactante la velocidad, simpleza, y síntesis que tiene este código)
Línea 5: Ponemos un cuadrado blanco abajo del mouse, centrado (para eso el -5).
Línea 6: "Flippeamos" el buffer de la pantalla, para que muestre lo que vamos dibujando.
Con 3 líneas más se puede agregar que al tocar una tecla (ej: 'Escape') salga del bucle infinito... detener el programa con Ctrl+C desde la consola.
Menos de 20 líneas y el resultado es bastante lindo, para jugar durante 20 segundos y tirar este código.
Update: Código fuente para bajar: Sketch.py
