Pygame es una librería que permite trabajar con imágenes y sonido animadas, gestionando su interacción mediante sprites y controlando el hardware. Se importa pygame y otras librerías, se inicializa estableciendo el tamaño de la ventana y la profundidad de color, y luego se ejecuta el bucle principal que detecta eventos, muestra imágenes, responde a las acciones del usuario y controla el juego.
4. ¿Qué es Pygame?
¡Abierta y gratuita!
Una librería que permite trabajar con imágenes y sonido...
5. ¿Qué es Pygame?
¡Abierta y gratuita!
Una librería que permite trabajar con imágenes y sonido...
¡Animadas!
6. ¿Qué es Pygame?
¡Abierta y gratuita!
Una librería que permite trabajar con imágenes y sonido...
¡Animadas!
... que gestiona su interacción...
7. ¿Qué es Pygame?
¡Abierta y gratuita!
Una librería que permite trabajar con imágenes y sonido...
¡Animadas!
... que gestiona su interacción...
Sprites
8. ¿Qué es Pygame?
¡Abierta y gratuita!
Una librería que permite trabajar con imágenes y sonido...
¡Animadas!
... que gestiona su interacción...
Sprites
... y que controla el Hardware.
9. ¿Qué es Pygame?
¡Abierta y gratuita!
Una librería que permite trabajar con imágenes y sonido...
¡Animadas!
... que gestiona su interacción...
Sprites
Bucle
de
... y que controla el Hardware. Eventos
15. Importación
import pygame
from pygame.locals import *
import sys
16. Importación
import pygame
from pygame.locals import *
import sys
En particular
sys.exit( )
El módulo sys es importante para trabajar
correctamente con el sistema operativo.
17. Contiene variables y
Importación
constantes muy útiles
import pygame
from pygame.locals import *
import sys
En particular
sys.exit( )
El módulo sys es importante para trabajar
correctamente con el sistema operativo.
20. Inicialización
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
display.set_mode( ) crea la
superficie de visualización.
21. Inicialización Tamaño de la
superficie
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
display.set_mode( ) crea la
superficie de visualización.
22. Inicialización Tamaño de la
superficie
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
Opciones
display.set_mode( ) crea la
superficie de visualización.
23. Inicialización Tamaño de la
superficie
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
Opciones
Profundidad
display.set_mode( ) crea la de color
superficie de visualización.
25. Inicialización
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
visor contiene un objeto Surface que puede
ser una ventana o la pantalla completa.
26. Inicialización
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
¡Aquí es
donde se mostrarán las
animaciones!
visor contiene un objeto Surface que puede
ser una ventana o la pantalla completa.
31. Inicialización Opciones
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
NOFRAME Sin bordes ni título.
OPENGL Para 3D.
RESIZABLE Tamaño variable.
32. Inicialización Opciones
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
NOFRAME Sin bordes ni título.
OPENGL Para 3D.
DOUBLEBUF Doble bufer.
RESIZABLE Tamaño variable.
33. Inicialización Opciones
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
NOFRAME Sin bordes ni título.
OPENGL Para 3D.
HWSURFACE Acelerada por Hardware.
DOUBLEBUF Doble bufer.
RESIZABLE Tamaño variable.
34. Inicialización Opciones
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
NOFRAME Sin bordes ni título.
Puedo poner varias con de separador|
OPENGL Para 3D.
HWSURFACE Acelerada por Hardware.
DOUBLEBUF Doble bufer.
RESIZABLE Tamaño variable.
35. Inicialización Profundidad de
color (en bits)
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
36. Inicialización Profundidad de
color (en bits)
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
8 256 colores
.
37. Inicialización Profundidad de
color (en bits)
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
8 256 colores
. 15 32 768 colores con transparencia
.
38. Inicialización Profundidad de
color (en bits)
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
8 256 colores. 15 32 768 colores con transparencia
.
16 65 536 colores.
39. Inicialización Profundidad de
color (en bits)
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
8 256 colores. 15 32 768 colores con transparencia .
16 65 536 colores. 24 16.7 millones de colores .
40. Inicialización Profundidad de
color (en bits)
pygame.init( )
visor = pygame.display.set_mode((640, 480), 0, 32)
8 256 colores. 15 32 768 colores con transparencia .
16 65 536 colores. 24 16.7 millones de colores.
32 16.7 millones de colores con transparencia
.
43. Ejecución Responder a las
acciones del jugador
Mostrar
imágenes y sonido
44. Ejecución Responder a las
acciones del jugador
Mostrar
imágenes y sonido
Detectar las
incidencias en el juego
45. Ejecución Responder a las
acciones del jugador
Mostrar
imágenes y sonido
Detectar las
incidencias en el juego
Y debo hacerlo una y otra vez, continuamente,
durante todo el juego.
46. Ejecución Responder a las
acciones del jugador
Bucle
Mostrar de
imágenes y sonido Eventos
Detectar las
FPS
Fotogramas por Segundo incidencias en el juego
Y debo hacerlo una y otra vez, continuamente,
durante todo el juego.
49. Bucle de Eventos
while True:
...
for event in pygame.event.get( ):
...
if event.type == QUIT:
pygame.quit( )
sys.exit( )
Todo lo que ocurre durante el juego debe estar aquí.
50. Bucle de Eventos
while True:
...
for event in pygame.event.get( ):
...
if event.type == QUIT: Mirar la lista de
pygame.quit( ) eventos
sys.exit( )
Todo lo que ocurre durante el juego debe estar aquí.
51. Bucle de Eventos
while True:
...
for event in pygame.event.get( ):
...
if event.type == QUIT: Mirar la lista de
pygame.quit( ) eventos
sys.exit( )
Responder al
tipo de evento
Todo lo que ocurre durante el juego debe estar aquí.
52. Bucle de Eventos
while True:
...
for event in pygame.event.get( ):
...
if event.type == QUIT: Mirar la lista de
pygame.quit( ) eventos
sys.exit( )
Responder al
from pygame.locals import *
tipo de evento
Todo lo que ocurre durante el juego debe estar aquí.
53. while True:
...
for event in pygame.event.get( ):
...
if event.type == QUIT:
pygame.quit( )
sys.exit( )
54. while True:
...
for event in pygame.event.get( ):
...
if event.type == QUIT:
pygame.quit( )
sys.exit( )
Haz sin parar:
...
Observa lo
Mira cada evento pendiente:
que se está
...
haciendo...
Si el tipo de evento es salir:
sal de pygame
sal del programa
55. while True:
...
for event in pygame.event.get( ):
... Aquí se
if event.type == QUIT: pondrán el resto de los
pygame.quit( ) procesos...
sys.exit( )
Haz sin parar:
...
Observa lo
Mira cada evento pendiente:
que se está
...
haciendo...
Si el tipo de evento es salir:
sal de pygame
sal del programa
56. while True:
...
for event in pygame.event.get( ):
... Aquí se
if event.type == QUIT: pondrán el resto de los
pygame.quit( ) procesos...
sys.exit( )
Haz sin parar: ... y eventos.
...
Observa lo
Mira cada evento pendiente:
que se está
...
haciendo...
Si el tipo de evento es salir:
sal de pygame
sal del programa
60. Dibujado en Pantalla
Usando el método
Para evitar artefactos visor.blit( )
se dibuja offscreen y
luego se vuelca todo en
pantalla.
61. Dibujado en Pantalla
Usando el método
Para evitar artefactos visor.blit( )
se dibuja offscreen y
luego se vuelca todo en
pantalla.
Usando el método
pygame.display.update( )
62. Dibujado en Pantalla
Usando el método
Para evitar artefactos visor.blit( )
se dibuja offscreen y
luego se vuelca todo en
pantalla.
Usando el método
pygame.display.update( )
Frame
Fotograma
63. Dibujado en Pantalla
Usando el método
Para evitar artefactos visor.blit( )
se dibuja offscreen y
luego se vuelca todo en
pantalla.
¡Muchos fotogramas
producen una
Usando el método
pygame.display.update( ) animación...
... si son diferentes!
Frame
Fotograma
66. En realidad hay más métodos para dibujar offscreen...
blit( ) para imágenes .
67. En realidad hay más métodos para dibujar offscreen...
blit( ) para imágenes .
draw.line( ) líneas
68. En realidad hay más métodos para dibujar offscreen...
blit( ) para imágenes .
draw.line( ) líneas
draw.circle( ) círculos
69. En realidad hay más métodos para dibujar offscreen...
blit( ) para imágenes .
draw.line( ) líneas
draw.circle( ) círculos
draw.ellipse( ) elipses
70. En realidad hay más métodos para dibujar offscreen...
blit( ) para imágenes .
draw.line( ) líneas
draw.circle( ) círculos
draw.ellipse( ) elipses
draw.rect( ) rectángulos
71. En realidad hay más métodos para dibujar offscreen...
blit( ) para imágenes .
draw.line( ) líneas
draw.circle( ) círculos
...
draw.ellipse( ) elipses
draw.rect( ) rectángulos
72. En realidad hay más métodos para dibujar offscreen...
blit( ) para imágenes .
Consulta la
draw.line( ) líneas documentación.
draw.circle( ) círculos
...
draw.ellipse( ) elipses
draw.rect( ) rectángulos
74. ¿Cómo defino Colores y Posiciones?
Colores con tuplas RGB.
r g b
colorVerde = (0,255,0)
75. ¿Cómo defino Colores y Posiciones?
Colores con tuplas RGB.
r g b
colorVerde = (0,255,0)
Posiciones con tuplas 2D.
x y
punto = (223,327)
76. ¿Cómo defino Colores y Posiciones?
Colores con tuplas RGB.
r g b
colorVerde = (0,255,0)
Posiciones con tuplas 2D.
x y
punto = (223,327)
Y zonas con tuplas RECT.
zona = (0,0,300,200)
79. ¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
Segundo, generamos el texto.
80. ¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
Segundo, generamos el texto.
Y tercero, lo dibujamos offscreen.
81. ¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
tipoLetra = pygame.font.SysFont(‘arial’, 48)
Segundo, generamos el texto.
Y tercero, lo dibujamos offscreen.
82. ¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
tipoLetra = pygame.font.SysFont(‘arial’, 48)
Segundo, generamos el texto.
texto = tipoLetra.render('Hola', True, color1, color2)
Y tercero, lo dibujamos offscreen.
83. ¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
tipoLetra = pygame.font.SysFont(‘arial’, 48)
Suavizar
Segundo, generamos el texto.
de texto de fondo
texto = tipoLetra.render('Hola', True, color1, color2)
Y tercero, lo dibujamos offscreen.
84. ¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
tipoLetra = pygame.font.SysFont(‘arial’, 48)
Suavizar
Segundo, generamos el texto.
de texto de fondo
texto = tipoLetra.render('Hola', True, color1, color2)
Y tercero, lo dibujamos offscreen.
visor.blit(texto, textRect)
85. ¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
tipoLetra = pygame.font.SysFont(‘arial’, 48)
Suavizar
Segundo, generamos el texto.
de texto de fondo
texto = tipoLetra.render('Hola', True, color1, color2)
Y tercero, lo dibujamos offscreen.
visor.blit(texto, textRect) lugar
88. ¡Todo es un objeto!
Siempre podemos acceder a sus propiedades o
usar sus métodos.
89. ¡Todo es un objeto!
Siempre podemos acceder a sus propiedades o
usar sus métodos.
xCentro = visor.get_rect( ).centerx
90. ¡Todo es un objeto!
Siempre podemos acceder a sus propiedades o
usar sus métodos.
xCentro = visor.get_rect( ).centerx
visor.fill((0,0,0))
91. ¡Todo es un objeto!
Siempre podemos acceder a sus propiedades o
usar sus métodos.
Consulta la
Documentación.
xCentro = visor.get_rect( ).centerx
visor.fill((0,0,0))