Upload
fernando-salamero
View
7.744
Download
21
Embed Size (px)
DESCRIPTION
Conceptos básicos de Pygame
Citation preview
PYGAME (I)Conceptos Básicos
¿Qué es Pygame?
¿Qué es Pygame?
Una librería que permite trabajar con imágenes y sonido...
¿Qué es Pygame?
Una librería que permite trabajar con imágenes y sonido...
¡Abierta y gratuita!
¿Qué es Pygame?
Una librería que permite trabajar con imágenes y sonido...
¡Abierta y gratuita!
¡Animadas!
¿Qué es Pygame?
Una librería que permite trabajar con imágenes y sonido...
¡Abierta y gratuita!
¡Animadas!
... que gestiona su interacción...
¿Qué es Pygame?
Una librería que permite trabajar con imágenes y sonido...
¡Abierta y gratuita!
¡Animadas!
... que gestiona su interacción...Sprites
¿Qué es Pygame?
Una librería que permite trabajar con imágenes y sonido...
¡Abierta y gratuita!
¡Animadas!
... que gestiona su interacción...Sprites
... y que controla el Hardware.
¿Qué es Pygame?
Una librería que permite trabajar con imágenes y sonido...
¡Abierta y gratuita!
¡Animadas!
... que gestiona su interacción...Sprites
... y que controla el Hardware.
Buclede
Eventos
Esquema General
Esquema General
Importación
Esquema General
Importación
Inicialización
Esquema General
Importación
Inicialización
Ejecución
Importación
Importación
import pygamefrom pygame.locals import *import sys
Importación
import pygamefrom pygame.locals import *import sys
El módulo sys es importante para trabajar correctamente con el sistema operativo.
En particularsys.exit( )
Importación
import pygamefrom pygame.locals import *import sys
El módulo sys es importante para trabajar correctamente con el sistema operativo.
En particularsys.exit( )
Contiene variables y constantes muy útiles
Inicialización
Inicialización
pygame.init( )
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
display.set_mode( ) crea la superficie de visualización.
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
display.set_mode( ) crea la superficie de visualización.
Tamaño de la superficie
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
display.set_mode( ) crea la superficie de visualización.
Tamaño de la superficie
Opciones
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
display.set_mode( ) crea la superficie de visualización.
Tamaño de la superficie
Opciones
Profundidad de color
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
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.
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.
¡Aquí es donde se mostrarán las
animaciones!
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
Opciones
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
Opciones
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
Opciones
RESIZABLE Tamaño variable.
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
Opciones
RESIZABLE Tamaño variable.
NOFRAME Sin bordes ni título.
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
Opciones
RESIZABLE Tamaño variable.
NOFRAME Sin bordes ni título.
OPENGL Para 3D.
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
Opciones
RESIZABLE Tamaño variable.
NOFRAME Sin bordes ni título.
OPENGL Para 3D.
DOUBLEBUF Doble bufer.
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
Opciones
RESIZABLE Tamaño variable.
NOFRAME Sin bordes ni título.
OPENGL Para 3D.
DOUBLEBUF Doble bufer.
HWSURFACE Acelerada por Hardware.
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
FULLSCREEN Pantalla completa.
Opciones
RESIZABLE Tamaño variable.
NOFRAME Sin bordes ni título.
OPENGL Para 3D.
DOUBLEBUF Doble bufer.
HWSURFACE Acelerada por Hardware.
Puedo poner varias con | de separador
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
Profundidad de color (en bits)
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
Profundidad de color (en bits)
8 256 colores.
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
Profundidad de color (en bits)
8 256 colores. 15 32 768 colores con transparencia.
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
Profundidad de color (en bits)
8 256 colores. 15 32 768 colores con transparencia.
16 65 536 colores.
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
Profundidad de color (en bits)
8 256 colores. 15 32 768 colores con transparencia.
16 65 536 colores. 24 16.7 millones de colores.
Inicialización
pygame.init( )visor = pygame.display.set_mode((640, 480), 0, 32)
Profundidad de color (en bits)
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.
Ejecución
Ejecución
Mostrar imágenes y sonido
Ejecución
Mostrar imágenes y sonido
Responder a las acciones del jugador
Ejecución
Mostrar imágenes y sonido
Responder a las acciones del jugador
Detectar las incidencias en el juego
Ejecución
Mostrar imágenes y sonido
Responder a las acciones del jugador
Detectar las incidencias en el juego
Y debo hacerlo una y otra vez, continuamente, durante todo el juego.
Ejecución
Mostrar imágenes y sonido
Responder a las acciones del jugador
Detectar las incidencias en el juego
Y debo hacerlo una y otra vez, continuamente, durante todo el juego.
FPSFotogramas por Segundo
Buclede
Eventos
Bucle de Eventos
Todo lo que ocurre durante el juego debe estar aquí.
Bucle de Eventoswhile 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í.
Bucle de Eventoswhile 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í.
Mirar la lista de eventos
Bucle de Eventoswhile 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í.
Mirar la lista de eventos
Responder al tipo de evento
Bucle de Eventoswhile 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í.
Mirar la lista de eventos
Responder al tipo de evento from pygame.locals import *
while True: ... for event in pygame.event.get( ): ... if event.type == QUIT: pygame.quit( ) sys.exit( )
while True: ... for event in pygame.event.get( ): ... if event.type == QUIT: pygame.quit( ) sys.exit( )
Haz sin parar: ... Mira cada evento pendiente: ... Si el tipo de evento es salir: sal de pygame sal del programa
Observa lo que se está haciendo...
while True: ... for event in pygame.event.get( ): ... if event.type == QUIT: pygame.quit( ) sys.exit( )
Haz sin parar: ... Mira cada evento pendiente: ... Si el tipo de evento es salir: sal de pygame sal del programa
Observa lo que se está haciendo...
Aquí se pondrán el resto de los
procesos...
while True: ... for event in pygame.event.get( ): ... if event.type == QUIT: pygame.quit( ) sys.exit( )
Haz sin parar: ... Mira cada evento pendiente: ... Si el tipo de evento es salir: sal de pygame sal del programa
Observa lo que se está haciendo...
Aquí se pondrán el resto de los
procesos...
... y eventos.
Dibujado en Pantalla
Dibujado en PantallaPara evitar artefactos se dibuja offscreen y luego se vuelca todo en pantalla.
Dibujado en PantallaPara evitar artefactos se dibuja offscreen y luego se vuelca todo en pantalla.
Usando el métodovisor.blit( )
Dibujado en PantallaPara evitar artefactos se dibuja offscreen y luego se vuelca todo en pantalla.
Usando el métodovisor.blit( )
Usando el métodopygame.display.update( )
Dibujado en PantallaPara evitar artefactos se dibuja offscreen y luego se vuelca todo en pantalla.
Usando el métodovisor.blit( )
Usando el métodopygame.display.update( )
FrameFotograma
Dibujado en PantallaPara evitar artefactos se dibuja offscreen y luego se vuelca todo en pantalla.
Usando el métodovisor.blit( )
Usando el métodopygame.display.update( )
FrameFotograma
¡Muchos fotogramas
producen una
animación...
... si son diferentes!
En realidad hay más métodos para dibujar offscreen...
En realidad hay más métodos para dibujar offscreen...
blit( ) para imágenes.
En realidad hay más métodos para dibujar offscreen...
blit( ) para imágenes.
draw.line( ) líneas
En realidad hay más métodos para dibujar offscreen...
blit( ) para imágenes.
draw.line( ) líneas
draw.circle( ) círculos
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
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
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
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
Consulta la documentación.
...
draw.rect( ) rectángulos
¿Cómo defino Colores y Posiciones?
¿Cómo defino Colores y Posiciones?
Colores con tuplas RGB.
colorVerde = (0,255,0)r g b
¿Cómo defino Colores y Posiciones?
Colores con tuplas RGB.
Posiciones con tuplas 2D.
colorVerde = (0,255,0)
punto = (223,327)
r g b
x y
¿Cómo defino Colores y Posiciones?
Colores con tuplas RGB.
Posiciones con tuplas 2D.
Y zonas con tuplas RECT.
colorVerde = (0,255,0)
punto = (223,327)
zona = (0,0,300,200)
r g b
x y
¿Y cómo dibujar Texto ?
¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
Segundo, generamos el texto.
¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
Segundo, generamos el texto.
Y tercero, lo dibujamos offscreen.
¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
Segundo, generamos el texto.
Y tercero, lo dibujamos offscreen.
tipoLetra = pygame.font.SysFont(‘arial’, 48)
¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
Segundo, generamos el texto.
Y tercero, lo dibujamos offscreen.
tipoLetra = pygame.font.SysFont(‘arial’, 48)
texto = tipoLetra.render('Hola', True, color1, color2)
¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
Segundo, generamos el texto.
Y tercero, lo dibujamos offscreen.
tipoLetra = pygame.font.SysFont(‘arial’, 48)
texto = tipoLetra.render('Hola', True, color1, color2)
de texto de fondoSuavizar
¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
Segundo, generamos el texto.
Y tercero, lo dibujamos offscreen.
tipoLetra = pygame.font.SysFont(‘arial’, 48)
texto = tipoLetra.render('Hola', True, color1, color2)
visor.blit(texto, textRect)
de texto de fondoSuavizar
¿Y cómo dibujar Texto ?
Primero, definimos el tipo de letra.
Segundo, generamos el texto.
Y tercero, lo dibujamos offscreen.
tipoLetra = pygame.font.SysFont(‘arial’, 48)
texto = tipoLetra.render('Hola', True, color1, color2)
visor.blit(texto, textRect)
de texto de fondoSuavizar
lugar
¡Todo es un objeto!
¡Todo es un objeto!Siempre podemos acceder a sus propiedades o usar sus métodos.
¡Todo es un objeto!Siempre podemos acceder a sus propiedades o usar sus métodos.
xCentro = visor.get_rect( ).centerx
¡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))
¡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))
Consulta la Documentación.
¿Preguntas?