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?
            ¡Abierta y gratuita!

Una librería que permite trabajar con imágenes y sonido...
¿Qué es Pygame?
            ¡Abierta y gratuita!

Una librería que permite trabajar con imágenes y sonido...

            ...
¿Qué es Pygame?
              ¡Abierta y gratuita!

Una librería que permite trabajar con imágenes y sonido...

          ...
¿Qué es Pygame?
              ¡Abierta y gratuita!

Una librería que permite trabajar con imágenes y sonido...

          ...
¿Qué es Pygame?
              ¡Abierta y gratuita!

Una librería que permite trabajar con imágenes y sonido...

          ...
¿Qué es Pygame?
              ¡Abierta y gratuita!

Una librería que permite trabajar con imágenes y sonido...

          ...
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 pygame
          from pygame.locals import *
          import sys
Importación



          import pygame
          from pygame.locals import *
          import sys

                       ...
Contiene variables y
Importación
                            constantes muy útiles


          import pygame
          fro...
Inicialización
Inicialización


 pygame.init( )
Inicialización


 pygame.init( )
 visor = pygame.display.set_mode((640, 480), 0, 32)




display.set_mode( ) crea la
super...
Inicialización                 Tamaño de la
                                superficie

 pygame.init( )
 visor = pygame.dis...
Inicialización                 Tamaño de la
                                superficie

 pygame.init( )
 visor = pygame.dis...
Inicialización                 Tamaño de la
                                superficie

 pygame.init( )
 visor = pygame.dis...
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 Su...
Inicialización


 pygame.init( )
 visor = pygame.display.set_mode((640, 480), 0, 32)


                           ¡Aquí es...
Inicialización                      Opciones


 pygame.init( )
 visor = pygame.display.set_mode((640, 480), 0, 32)
Inicialización                        Opciones


 pygame.init( )
 visor = pygame.display.set_mode((640, 480), 0, 32)

 FUL...
Inicialización                          Opciones


 pygame.init( )
 visor = pygame.display.set_mode((640, 480), 0, 32)

 F...
Inicialización                          Opciones


 pygame.init( )
 visor = pygame.display.set_mode((640, 480), 0, 32)

 F...
Inicialización                          Opciones


 pygame.init( )
 visor = pygame.display.set_mode((640, 480), 0, 32)

 F...
Inicialización                          Opciones


 pygame.init( )
 visor = pygame.display.set_mode((640, 480), 0, 32)

 F...
Inicialización                                    Opciones


 pygame.init( )
 visor = pygame.display.set_mode((640, 480), ...
Inicialización                                    Opciones


 pygame.init( )
 visor = pygame.display.set_mode((640, 480), ...
Inicialización              Profundidad de
                             color (en bits)

 pygame.init( )
 visor = pygame.d...
Inicialización              Profundidad de
                             color (en bits)

 pygame.init( )
 visor = pygame.d...
Inicialización              Profundidad de
                             color (en bits)

 pygame.init( )
 visor = pygame.d...
Inicialización              Profundidad de
                             color (en bits)

 pygame.init( )
 visor = pygame.d...
Inicialización              Profundidad de
                             color (en bits)

 pygame.init( )
 visor = pygame.d...
Inicialización                      Profundidad de
                                     color (en bits)

 pygame.init( )
 ...
Ejecución
Ejecución




    Mostrar
imágenes y sonido
Ejecución           Responder a las
                    acciones del jugador


    Mostrar
imágenes y sonido
Ejecución                Responder a las
                         acciones del jugador


    Mostrar
imágenes y sonido

  ...
Ejecución                    Responder a las
                             acciones del jugador


    Mostrar
imágenes y so...
Ejecución                       Responder a las
                                acciones del jugador

                    ...
Bucle de Eventos




Todo lo que ocurre durante el juego debe estar aquí.
Bucle de Eventos
while True:
  ...
  for event in pygame.event.get( ):
      ...
      if event.type == QUIT:
          py...
Bucle de Eventos
while True:
  ...
  for event in pygame.event.get( ):
      ...
      if event.type == QUIT:       Mirar ...
Bucle de Eventos
  while True:
    ...
    for event in pygame.event.get( ):
        ...
        if event.type == QUIT:   ...
Bucle de Eventos
  while True:
    ...
    for event in pygame.event.get( ):
        ...
        if event.type == QUIT:   ...
while True:
  ...
  for event in pygame.event.get( ):
      ...
      if event.type == QUIT:
          pygame.quit( )
    ...
while True:
  ...
  for event in pygame.event.get( ):
      ...
      if event.type == QUIT:
          pygame.quit( )
    ...
while True:
  ...
  for event in pygame.event.get( ):
      ...                            Aquí se
      if event.type == ...
while True:
  ...
  for event in pygame.event.get( ):
      ...                            Aquí se
      if event.type == ...
Dibujado en Pantalla
Dibujado en Pantalla
Para evitar artefactos
se dibuja offscreen y
luego se vuelca todo en
pantalla.
Dibujado en Pantalla
                          Usando el método
Para evitar artefactos       visor.blit( )
se dibuja offsc...
Dibujado en Pantalla
                             Usando el método
Para evitar artefactos          visor.blit( )
se dibuja...
Dibujado en Pantalla
                             Usando el método
Para evitar artefactos          visor.blit( )
se dibuja...
Dibujado en Pantalla
                               Usando el método
Para evitar artefactos            visor.blit( )
se di...
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....
En realidad hay más métodos para dibujar offscreen...

   blit( ) para imágenes   .




draw.line( ) líneas

        draw....
En realidad hay más métodos para dibujar offscreen...

   blit( ) para imágenes   .




draw.line( ) líneas

        draw....
En realidad hay más métodos para dibujar offscreen...

   blit( ) para imágenes   .




draw.line( ) líneas

        draw....
En realidad hay más métodos para dibujar offscreen...

   blit( ) para imágenes   .



                                   ...
¿Cómo defino Colores y Posiciones?
¿Cómo defino Colores y Posiciones?


Colores con tuplas RGB.
                                  r g b
                    co...
¿Cómo defino Colores y Posiciones?


Colores con tuplas RGB.
                                   r g b
                     ...
¿Cómo defino Colores y Posiciones?


Colores con tuplas RGB.
                                   r g b
                     ...
¿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...
¿Y cómo dibujar Texto ?


Primero, definimos el tipo de letra.

tipoLetra = pygame.font.SysFont(‘arial’, 48)

 Segundo, gen...
¿Y cómo dibujar Texto ?


Primero, definimos el tipo de letra.

tipoLetra = pygame.font.SysFont(‘arial’, 48)

 Segundo, gen...
¿Y cómo dibujar Texto ?


Primero, definimos el tipo de letra.

tipoLetra = pygame.font.SysFont(‘arial’, 48)

             ...
¿Y cómo dibujar Texto ?


Primero, definimos el tipo de letra.

tipoLetra = pygame.font.SysFont(‘arial’, 48)

             ...
¿Y cómo dibujar Texto ?


Primero, definimos el tipo de letra.

tipoLetra = pygame.font.SysFont(‘arial’, 48)

             ...
¡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( ).cente...
¡Todo es un objeto!
Siempre podemos acceder a sus propiedades o
usar sus métodos.




   xCentro = visor.get_rect( ).cente...
¡Todo es un objeto!
Siempre podemos acceder a sus propiedades o
usar sus métodos.

                    Consulta la
       ...
¿Preguntas?
Programación con Pygame I
Programación con Pygame I
Programación con Pygame I
Programación con Pygame I
Próxima SlideShare
Cargando en…5
×

Programación con Pygame I

8.673 visualizaciones

Publicado el

Conceptos básicos de Pygame

1 comentario
13 recomendaciones
Estadísticas
Notas
Sin descargas
Visualizaciones
Visualizaciones totales
8.673
En SlideShare
0
De insertados
0
Número de insertados
2.259
Acciones
Compartido
0
Descargas
598
Comentarios
1
Recomendaciones
13
Insertados 0
No insertados

No hay notas en la diapositiva.

Programación con Pygame I

  1. 1. PYGAME (I) Conceptos Básicos
  2. 2. ¿Qué es Pygame?
  3. 3. ¿Qué es Pygame? Una librería que permite trabajar con imágenes y sonido...
  4. 4. ¿Qué es Pygame? ¡Abierta y gratuita! Una librería que permite trabajar con imágenes y sonido...
  5. 5. ¿Qué es Pygame? ¡Abierta y gratuita! Una librería que permite trabajar con imágenes y sonido... ¡Animadas!
  6. 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. 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. 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. 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
  10. 10. Esquema General
  11. 11. Esquema General Importación
  12. 12. Esquema General Importación Inicialización
  13. 13. Esquema General Importación Inicialización Ejecución
  14. 14. Importación
  15. 15. Importación import pygame from pygame.locals import * import sys
  16. 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. 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.
  18. 18. Inicialización
  19. 19. Inicialización pygame.init( )
  20. 20. Inicialización pygame.init( ) visor = pygame.display.set_mode((640, 480), 0, 32) display.set_mode( ) crea la superficie de visualización.
  21. 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. 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. 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.
  24. 24. Inicialización pygame.init( ) visor = pygame.display.set_mode((640, 480), 0, 32)
  25. 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. 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.
  27. 27. Inicialización Opciones pygame.init( ) visor = pygame.display.set_mode((640, 480), 0, 32)
  28. 28. Inicialización Opciones pygame.init( ) visor = pygame.display.set_mode((640, 480), 0, 32) FULLSCREEN Pantalla completa.
  29. 29. Inicialización Opciones pygame.init( ) visor = pygame.display.set_mode((640, 480), 0, 32) FULLSCREEN Pantalla completa. RESIZABLE Tamaño variable.
  30. 30. Inicialización Opciones pygame.init( ) visor = pygame.display.set_mode((640, 480), 0, 32) FULLSCREEN Pantalla completa. NOFRAME Sin bordes ni título. RESIZABLE Tamaño variable.
  31. 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. 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. 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. 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. 35. Inicialización Profundidad de color (en bits) pygame.init( ) visor = pygame.display.set_mode((640, 480), 0, 32)
  36. 36. Inicialización Profundidad de color (en bits) pygame.init( ) visor = pygame.display.set_mode((640, 480), 0, 32) 8 256 colores .
  37. 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. 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. 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. 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 .
  41. 41. Ejecución
  42. 42. Ejecución Mostrar imágenes y sonido
  43. 43. Ejecución Responder a las acciones del jugador Mostrar imágenes y sonido
  44. 44. Ejecución Responder a las acciones del jugador Mostrar imágenes y sonido Detectar las incidencias en el juego
  45. 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. 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.
  47. 47. Bucle de Eventos Todo lo que ocurre durante el juego debe estar aquí.
  48. 48. 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í.
  49. 49. 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í.
  50. 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( ) Responder al tipo de evento Todo lo que ocurre durante el juego debe estar aquí.
  51. 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 from pygame.locals import * tipo de evento Todo lo que ocurre durante el juego debe estar aquí.
  52. 52. while True: ... for event in pygame.event.get( ): ... if event.type == QUIT: pygame.quit( ) sys.exit( )
  53. 53. 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
  54. 54. 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
  55. 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: ... 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
  56. 56. Dibujado en Pantalla
  57. 57. Dibujado en Pantalla Para evitar artefactos se dibuja offscreen y luego se vuelca todo en pantalla.
  58. 58. Dibujado en Pantalla Usando el método Para evitar artefactos visor.blit( ) se dibuja offscreen y luego se vuelca todo en pantalla.
  59. 59. 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( )
  60. 60. 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
  61. 61. 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
  62. 62. En realidad hay más métodos para dibujar offscreen...
  63. 63. En realidad hay más métodos para dibujar offscreen... blit( ) para imágenes .
  64. 64. En realidad hay más métodos para dibujar offscreen... blit( ) para imágenes . draw.line( ) líneas
  65. 65. En realidad hay más métodos para dibujar offscreen... blit( ) para imágenes . draw.line( ) líneas draw.circle( ) círculos
  66. 66. 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
  67. 67. 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
  68. 68. 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
  69. 69. 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
  70. 70. ¿Cómo defino Colores y Posiciones?
  71. 71. ¿Cómo defino Colores y Posiciones? Colores con tuplas RGB. r g b colorVerde = (0,255,0)
  72. 72. ¿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)
  73. 73. ¿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)
  74. 74. ¿Y cómo dibujar Texto ?
  75. 75. ¿Y cómo dibujar Texto ? Primero, definimos el tipo de letra.
  76. 76. ¿Y cómo dibujar Texto ? Primero, definimos el tipo de letra. Segundo, generamos el texto.
  77. 77. ¿Y cómo dibujar Texto ? Primero, definimos el tipo de letra. Segundo, generamos el texto. Y tercero, lo dibujamos offscreen.
  78. 78. ¿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.
  79. 79. ¿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.
  80. 80. ¿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.
  81. 81. ¿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)
  82. 82. ¿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
  83. 83. ¡Todo es un objeto!
  84. 84. ¡Todo es un objeto! Siempre podemos acceder a sus propiedades o usar sus métodos.
  85. 85. ¡Todo es un objeto! Siempre podemos acceder a sus propiedades o usar sus métodos. xCentro = visor.get_rect( ).centerx
  86. 86. ¡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))
  87. 87. ¡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))
  88. 88. ¿Preguntas?

×