2008-12-05 17 views
16

Quiero desarrollar un juego 2D muy simple en Python. Pygame es la biblioteca más popular para el desarrollo de juegos en Python, pero ya estoy bastante familiarizado con wxPython y me siento cómodo usándolo. Incluso he escrito un Tetris clone en él, y fue bastante sencillo.¿Qué puede hacer Pygame en términos de gráficos que wxPython no puede?

Me pregunto, ¿qué ofrece Pygame en términos de gráficos (dejando de lado el sonido, por un momento) que wxPython no puede hacer? ¿Es de alguna manera más simple/más rápido hacer gráficos en Pygame que en wxPython? ¿Es aún más multiplataforma?

Parece que me falta algo aquí, pero no sé qué.

Respuesta

20

Bueno, en teoría, no hay nada que puedas hacer con Pygame que no puedas con wxPython. El punto no es qué sino cómo. En mi opinión, es más fácil escribir un juego con PyGame porque:

  • Es más rápido. Pygame se basa en SDL, que es una biblioteca C específicamente diseñada para juegos, se ha desarrollado pensando en la velocidad. Cuando desarrollas juegos, necesitas velocidad.

  • Es una biblioteca de juegos, no un lienzo de propósito general, tiene clases y funciones útiles para sprites, transformaciones, manejo de entradas, dibujo, detección de colisiones. También implementa algoritmos y técnicas que a menudo se usan en juegos como rectángulos sucios, páginas volteadas, etc.

  • Hay thousands of games y ejemplos hechos con él. Será más fácil para ti descubrir cómo hacer cualquier truco.

  • Hay un montón de libraries con efectos y utilidades que podría volver a utilizar. Quieres un juego isométrico, hay una biblioteca, quieres un motor de física, hay una biblioteca, un efecto visual genial, hay una biblioteca.

  • PyWeek. :) ¡Esto hace que el desarrollo de tu juego sea aún más divertido!

Para algunos juegos muy simples como el Tetris, la diferencia no será demasiado, pero si se quiere desarrollar un juego bastante complejo, créame, usted querrá algo así como PyGame.

13

wxPython se basa en wxWidgets que es un conjunto de herramientas orientado a la GUI. Tiene la ventaja de utilizar los estilos y las decoraciones proporcionadas por el sistema en el que se ejecuta y, por lo tanto, es muy fácil escribir aplicaciones portátiles que se integran muy bien en la apariencia de lo que está ejecutando. ¿Quieres una casilla de verificación? Use wxCheckBox y wxPython manejará el aspecto y la interacción.

pyGame, por otro lado, está orientado al desarrollo de juegos y lo acerca más al hardware en formas en que wxPython no lo hace (y no necesita, ya que llama al sistema operativo para dibujar la mayoría de sus controles) . pyGame tiene muchas funciones relacionadas con el juego, como la detección de colisiones, el control preciso de superficies y capas o el cambio de buffers de visualización en el momento que elijas.

Dicho esto, desde el punto de vista gráfico, probablemente siempre pueda encontrar la forma de hacer lo que quiera con ambos kits de herramientas. Sin embargo, cuando la velocidad cuenta o deseas implementar gráficamente más ideas de juego que Tetris, probablemente estés mejor con pyGame. Si desea utilizar muchos elementos de la GUI y no necesita los gráficos y funciones de sonido sofisticados, estará mejor con wxPython.

La portabilidad no es un problema.Ambos están disponibles para los tres grandes (Linux, OSX, Windows).

Es más una cuestión de qué tipo de capacidades especiales necesita realmente.

+0

¿Y si quiero usar ambos? Es decir. ¿Tiene un juego gráfico completo y puede controlarlo/configurarlo con widgets de GUI estándar? –

+2

Es posible que desee considerar la visualización de gráficos de pyGame en wxPython-Window. Pruebe este enlace: http://wiki.wxpython.org/IntegratingPyGame – Berufsstudent

+0

Sí, lo he visto antes, pero no parece muy completo. Las descripciones son algo reservadas y dudosas, que también es lo que encontré en otros lugares. –

Cuestiones relacionadas