Pygame es un conjunto multiplataforma de módulos de Python diseñados para crear juegos. Los módulos están diseñados para ser simples, fáciles de usar y divertidos, una parte clave de la ideología de Pygame. En esta publicación, te mostraré cómo usar Pygame y compartiré consejos y recursos para aprenderlo..
Esta guía asume que ya sabes cómo codificar en Python. Si no es así, echa un vistazo a The Best Way to Learn Python, Learn Python, The Python Tutorial, Codecademy o Learn Python, la manera más difícil de comenzar.
Python es a menudo considerado como el mejor "primer lenguaje de programación" para aprender, y ha sido elogiado por su sintaxis fácil de aprender y su curva de aprendizaje gradual. Por esta razón, muchos programadores nuevos comienzan por aprender Python.
Pygame extiende Python, adopta la filosofía de Python y pretende ser fácil de usar. Además, los aspirantes a nuevos desarrolladores de juegos sin experiencia en programación pueden usar Pygame, ya que pueden capturar rápidamente Python primero.
Pygame ha estado disponible desde 2000 y, desde entonces, una gran comunidad se ha desarrollado a su alrededor. La comunidad afirma que Pygame se ha descargado millones de veces y ha tenido millones de visitas a su sitio web ”. Como resultado de la gran comunidad, los errores informados se corrigen rápidamente, hay ayuda disponible y se han agregado una gran cantidad de funciones adicionales. Además, la comunidad asegura que el desarrollo de Pygame es divertido; por ejemplo, se ejecuta una competencia bianual de juegos de Python para promover la plataforma. El tamaño de la comunidad es lo que separa a Pygame de los otros marcos de juego de Python.
El hecho de que Pygame sea de código abierto significa que la comunidad generalmente corrige los errores muy rápidamente. También significa que puedes extender Pygame para que se adapte a tus necesidades e incluso devolver a la comunidad.
Pygame está escrito en C, y echar un vistazo al código es una excelente manera de entender mejor cómo funcionan Python y Pygame.
Pygame es altamente portátil, ya que admite Windows, Linux, Mac OS X, BeOS, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX y QNX. Además de estas plataformas informáticas, existe un subconjunto de Pygame para Android. Además, Pygame no requiere OpenGL y puede usar DirectX, WinDIB, X11, Linux framebuffer y muchas otras API para generar gráficos. Esto asegura que una mayor cantidad de usuarios pueden jugar tu juego.
Antes de instalar Pygame, asegúrate de haber instalado Python. Notará que hay dos versiones de Python: Python 2 y Python 3. Personalmente, le recomiendo que use Python 2 junto con Pygame, ya que Python 2 es más frecuente y hay módulos de Pygame que no son compatibles con Python 3. Sin embargo, Todavía sería capaz de hacer grandes juegos usando Python 3.
Después de asegurarte de que se está ejecutando una versión de Python en tu máquina, puedes descargar Pygame desde su sitio web de descarga..
Además de instalar los módulos de Pygame, te recomiendo que instales un IDE de Python, que te facilitará la creación y compilación de juegos..
Tenga en cuenta que un entorno de desarrollo integrado, conocido como IDLE, ya viene incluido con Python. Sin embargo, IDLE ha sido criticado frecuentemente por problemas de usabilidad y personalmente no puedo recomendarlo.
Mi preferencia personal es PyScripter, pero PyCharm, Wing IDE, Python Tools para Visual Studio y Netbeans son opciones viables. Como siempre, la elección de un IDE se reduce a las preferencias personales, por lo que te sugiero que pruebes todos ellos y veas cuál te gusta más..
Aquí hay algunos recursos que te ayudarán a comenzar con Pygame..
La Universidad de Colorado ofrece una gran introducción a Pygame. Las diapositivas adjuntas asegurarán que usted sepa y cómo usar los componentes clave de Pygame. Después de leer este documento, debe comprender los conceptos básicos de Pygame.
Hay una multitud de tutoriales disponibles que te enseñarán Pygame paso a paso. He seleccionado tres de mis favoritos a mano:
Game Development en Python 3 con Pygame es una serie de videos tutoriales disponibles como una lista de reproducción de YouTube. La serie contiene 29 videos, comenzando con la visualización de imágenes y la representación de texto, y continúa con la enseñanza de la animación y la entrada del usuario. Si prefieres los tutoriales en video a los tutoriales basados en texto, no te pierdas esta serie..
Si eres un principiante tanto de Python como de Pygame, te recomiendo echar un vistazo a Inventa tus propios juegos de computadora con Python. Este libro comienza enseñándote los conceptos básicos de Python y respalda esta instrucción mostrándote cómo hacer juegos simples de línea de comandos. Después de asegurarse de que comprende los conceptos básicos de Python, el libro continúa enseñando Pygame..
Por otro lado, si tienes ganas de saltar directamente a Pygame, Making Games with Python & Pygame es el libro para ti. Al final de este libro, habrás creado 11 juegos y estarás listo para jugar solo..
Todos estos libros son gratuitos y están en línea, por lo que puede comenzar de inmediato.!
Echar un vistazo a la documentación es un paso importante en tu camino hacia el dominio de Pygame. Aquí encontrará documentos, tutoriales y referencias que cubren todas las características de Pygame. La documentación te permitirá conocer todos los aspectos de Pygame, yendo más allá de lo que hubieras aprendido a través de los recursos anteriores..
El Wiki de Pygame también ayudará a responder cualquier pregunta que tengas sobre la plataforma, así que no dudes en echar un vistazo..
Mirar el código te ayudará a entender cómo interactúan las diferentes partes de Pygame para hacer un juego completo. Además, los ejemplos te mostrarán las mejores prácticas, y puedes encontrar algunos trucos en el camino.
Consulte los ejemplos oficiales de Pygame para obtener detalles sobre cómo usar módulos individuales, o visite los proyectos públicos de Pygame en GitHub para ver un conjunto completo de código.
Pygame tiene un canal de IRC activo y una lista de correo. (La lista de correo también está disponible en una interfaz similar a un foro). Los miembros de la comunidad están ansiosos por ayudar a los principiantes, así que no tenga miedo de hacer preguntas.
Una vez que te conviertas en un experto en Pygame, contribuye de nuevo a la comunidad y ayuda a otros. Enseñar a otros lo ayudará a aprender y solidificará los conceptos que ya conoce.
Los recursos proporcionados anteriormente serán más que suficientes para obtener una comprensión sólida de Pygame. Además, si trabajas a través de los recursos, habrás realizado múltiples juegos. Sin embargo, te insto a que hagas tu propia creación; hacer más que construir Tic-Tac-Toe o Concentración. Cualquiera puede seguir un tutorial para hacer un juego. Deja que tu creatividad fluya y pon a prueba tus habilidades construyendo un original juego.
Pygame viene con una característica realmente poderosa conocida como grupos, a través de pygame.sprite.Group
clase. Un grupo es esencialmente un contenedor para objetos de sprites..
Por ejemplo, si estoy creando múltiples Bala
sprites, puedo agregarlos a un grupo llamado balas
:
bullets = pygame.sprite.Group () para i en el rango (10): bullets.add (Bullet ())
Trabajar con grupos es mucho más rápido que trabajar con sprites individuales. Simplemente puedes llamar Group.update ()
para actualizar todos los sprites dentro de un grupo, o Grupo.draw ()
Blit el contenido de la Grupo
para usted Superficie
. Además, los grupos hacen que la detección de colisiones sea más fácil, porque Pygame tiene un método para verificar las colisiones entre dos grupos: pygame.sprite.groupcollide ()
.
Asegúrese de que está convirtiendo un Superficie
cada vez que creas uno llamando al convertir()
método. Este método cambia el formato de píxel de un Superficie
para que coincida con la de la pantalla Superficie
. Si no se llama a este método, tendrá que realizarse una conversión de píxeles cada vez que compense algo en su cuenta. Superficie
-una operación muy lenta.
Por ejemplo, en lugar de:
ballPicture = pygame.image.load ('ball.png')
llamada:
ballPicture = pygame.image.load ('ball.png'). convert ()
o si necesitas configurar el alfa:
ballPicture = pygame.image.load ('ball.png'). convert_alpha ()
Tenga en cuenta que convert_alpha ()
no resultará en el mismo aumento de rendimiento que convertir()
, ya que el formato de píxel no será una coincidencia exacta para el Superficie
ventana. Sin embargo, se traduce en una mejor velocidad de blit.
Ambos pygame.display.update ()
y pygame.display.flip ()
Actualizar los contenidos de la ventana del juego. Sin embargo, simplemente llamando a estos métodos, actualice toda la pantalla, reduciendo considerablemente la velocidad de cuadros. En su lugar, considere solo actualizar una parte específica de la pantalla (donde se realicen cambios) llamando al pygame.display.update ()
y pasando un rect
Representando el área a ser actualizada en el método. Al hacer esto, verás una gran mejora en el rendimiento..
Tenga en cuenta que, a veces, la pantalla completa deberá actualizarse, y en estos casos ambos métodos funcionarán bien.
Recuerda que mencioné la comunidad grande y útil de Pygame anteriormente en la publicación. Te recomiendo que aproveches esta comunidad descargando módulos adicionales hechos por sus miembros. Estos módulos ayudarán a facilitar el rápido desarrollo de su juego y simplificarán el proceso de creación del juego..
Mis favoritos personales incluyen:
Puedes encontrar más bibliotecas en el sitio web de Pygame..
Si quieres que tu juego sea verdaderamente multiplataforma, debes considerar el escenario en el que tus usuarios no tienen Python y Pygame instalados en sus máquinas.
Considere la extensión py2exe para hacer ejecutables de Windows y la extensión py2app para crear aplicaciones para Mac OS X.
Pygame no se ha utilizado con mucha frecuencia comercialmente, ya que Python no es conocido por sus capacidades de desarrollo de juegos. Sin embargo, Pygame se ha utilizado para crear muchos juegos independientes exitosos:
Galcon es un juego galáctico de acción y estrategia para jugadores múltiples, y puede ser el juego más prominente desarrollado con Pygame. Recibió como premio al Top 10 de Juego del Año en 2007 de GameTunnel, uno de los primeros sitios de revisión de juegos independientes..
Frets on Fire, un clon de Guitar Hero de código abierto fue creado en Pygame, como una entrada al concurso 2006 para el desarrollo de juegos por Unreal Voodoo..
El galardonado juego de rol Dangerous High School Girls in Trouble !, del desarrollador independiente Mousechief, fue finalista en IndieCade 2008.
PyWeek es un desafío bianual de programación de juegos que solo acepta juegos creados en Python. Por lo tanto, muchos envíos se crean utilizando Pygame. Una lista de ganadores anteriores está disponible en el sitio web de PyWeek.
En esta publicación, te he dado una introducción al desarrollo de juegos con Python y Pygame. Espero haber tenido éxito en interesarte en Pygame y en enseñarte más al respecto. No dudes en hacer tus preguntas aquí o en varios foros de Pygame. Ahora estás listo para comenzar tu viaje en el mundo de Pygame. La mejor de las suertes!