1. Introducion a: Por: Ricardo Daniel Quiroga Email: L2radamanthys@gmail.com Web: http://www.l2radamanthys.tk Disclaimed: Perdón por si encuentran un error ortografic o :P, Al menos espero que les guste la charla.
2.
3. Que es Pygame? Pygame es una Libreria Multimedia Basada en SDL (Simple DirectMedia Layer) que nos ofrece una interfaz de acceso al los recursos de la maquina ( gestionar el manejo de imagenes, sonidos, gestion de ventana, dispositivos tales como el teclado, joistick, mouse, temporizadores, colciones.. etc. ) independientemente del S istema O perativo . La misma Fue creada por Pete r Shinners .
4.
5. Distribución de Módulos en PyGame Cdrom, Cursors, Display, Draw, Event, Font, Image, Joystick, Key, Music, Mouse, Movie, Mixer, Overlay, Pixelarray, Rect, Sndarray, Sprite, Surface, Surfarray, Time,Transform De todos los módulos anteriormente vistos los mas útiles o los que mas comúnmente usaremos son: Display, Event, Joystick, Image, Key, Mouse, Rect, Sprite, Surface, Time mas info: http://www.pygame.org/docs
6. Instalando PyGame Primero antes que nada para instalar PyGame se requiere tener instalada alguna version de Python :P, a la fecha la ultima versión de PyGame es la 1.8.1 . En GNUinux (Distribucion Debian) En MS. Win Nota: PyGame funciona ademas tambien en S.O. Mac OS, Solaris, FreeBSD, OlePC, Celulares Nokia S60 y cualquier cosa a la que se le pueda instalar Python. Descargar desde la pagina de PyGame la versión de PyGame compatible con su versión de Python y ejecute el instalador. >> sudo apt-cache update > > sudo ap t -get install python-pygame En la consola ejecute: Codigo Fuente Descargue el paquete precompilado desde la pagina el paquete, descomprima el mismo y en la consola ejecute la siguiente instrucion: >> python setup.py install
7. Iniciando PyGame 001 import pygame 002 from pygame.locals import * 003 00 4 pygame.init() 00 5 screen = pygame.display.set_mode((320,240)) 006 pygame.display.set_caption( “Hola Mundo” ) Aprarecera una ventana como esta.
8. Procesando eventos del teclado t eclas = pygame.key.get_pressed() if teclas[K_a]: # hacer algo si se preciona la # tecla A print “Presionaste la tecla apos;aapos;“ ... Capturando eventos del teclado K_a, K_b, ... K_z K_1,....K_9 K_LEFT, K_RIGHT, K_UP, K_DOWN, K_SPACE, K_INTRO... NUM_1,...,NUM_9... nota: estos identificadores otros mas se encuentran en pygame.locals , de ahí la importancia de importar este modulo por aparte. Algunas Teclas:
9. La Clase Rect (Rectángulo) Distintas formas de crear un objeto tipo Rect pygame.Rect(left, top, width, height): return Rect pygame.Rect((left, top), (width, height)): return Rect pygame.Rect(object): return Rect image.get_rect() return rect Atributos de la clase rect top, left, bottom, right, topleft, bottomleft, topright, bottomright, midtop, midleft, midbottom, midright, center, centerx, centery, size, width, height, x, y, w, h h PyGame utiliza los objetos Rect para cargar y manipular áreas rectangulares, un objeto Rect puede crearse a partir de su posición izquierda superior (x,y) y su ancho y alto (width, height), también puede crearse con objetos de Python que sean rectángulos o tengan un atributo rect.
10.
11. Moviendo Imágenes Para posicionar un objeto sobre la pantalla, necesitamos decirle a la función Blit donde poner la imagen. En pygame siempre pasamos las coordenadas como pares (x, y). Esto representa el número de pixels a la derecha, y el número de pixels hacia abajo, desde un punto situado en la esquina superior izquierda de la pantalla. y x (0,0) (10,10) pantalla A imagen B actual (5,10) Destino (35,10) actual (35,10) ... img = pygame.image.load(“teke.png”) x,y = 5,10 # cordenadas # A (x=5,y=10) screen.blit(img,(x,y)) pygame.display.flip() #movemos la imagen x = x + 30 #B (x=35,y=10) screen.blit(img,(x,y)) ...
12. Sprite Un sprite es cualquier objeto que aparece en nuestro juego aunque normalmente nos referimos a las imágenes de los personajes, los sprites pueden ser estáticos (los tiles del mapa) o dinámicos (un personaje de nuestro juego). Normalmente un sprite tra e consigo un conjunto de atributos los mas comunes, imagen y posición en pantalla. Pygame nos proporciona una clase (que se llama??? Adivinen..Sprites) para el manejo de grupos de sprites. La misma sirve para agrupar todos los atributos relacionados con el personaje Class MiPersonaje(Sprite): def __init__(self): self.image = pygame.image.load(‘personaje.bmp’) self.rect = self.image.get_rect() .... def update(self): # definir el comportamiento de mi personaje self.rect.x += 3 ... image rect Sprite update(argv*) diagrama
13. T emporizador No todos tenemos la misma PC (algunos tienen una Súper-maquina , otros una con velocidad razonable, y algunos por contrariedad tenemos un Dinosaurio en casa :P) y bien a que viene esto, es que si no controlamos la velocidad del juego notaremos que el juego corre demasiado rápido en las primera y algo lento en las ultimas por lo que se hace necesario encontrar una forma para q u e el juego corra a la misma velocidad en casi todas la PC. reloj = pygame.time.Clock() ... loop = True #bucle principal del juego While loop: clock.tick( cuadros _por_segundo) ... pygame.time.wait(milliseconds) pygame.time.Clock(): return Clock Clock.tick(framerate=0): return milliseconds Entonces como controlamos la velocidad del Juego??
14. Preguntas sobre esta primera parte? Agunos Sitios Web de Interes http://www.pygame.org/docs http://www.python.org http://www.pyar.org.ar http://www.losersjuegos.org.ar Falta la parte de armar el Juego...