2008-12-05 8 views
16

Je veux développer un jeu 2D très simple en Python. Pygame est la bibliothèque la plus populaire pour le développement de jeux en Python, mais je suis déjà familier avec wxPython et je me sens à l'aise pour l'utiliser. J'ai même écrit un Tetris clone dedans, et c'était assez lisse.Que peut faire Pygame en termes de graphiques que wxPython ne peut pas?

Je me demande, qu'est-ce que Pygame offre en termes de graphiques (en laissant le son de côté, pour un moment) que wxPython ne peut pas faire? Est-il plus simple/plus rapide de faire des graphismes dans Pygame que dans wxPython? Est-ce encore plus multi-plateforme?

On dirait qu'il me manque quelque chose ici, mais je ne sais pas quoi.

Répondre

20

Eh bien, en théorie, vous ne pouvez rien faire avec Pygame avec wxPython. Le point n'est pas quoi mais comment. À mon avis, il est plus facile d'écrire un jeu avec PyGame parce que:

  • C'est plus rapide. Pygame est basé sur SDL qui est une bibliothèque C spécialement conçue pour les jeux, elle a été développée avec la vitesse à l'esprit. Lorsque vous développez des jeux, vous avez besoin de vitesse. Est une bibliothèque de jeux, pas une toile d'usage général, Elle a des classes et des fonctions utiles pour les sprites, les transformations, la gestion des entrées, le dessin, la détection de collision. Il implémente également des algorithmes et des techniques souvent utilisés dans les jeux comme les rectangles sales, le retournement de page, etc.

  • Ce sera plus facile pour vous de découvrir comment faire n'importe quel tour.

  • Il ya beaucoup de libraries avec des effets et des utilitaires que vous pourriez réutiliser. Vous voulez un jeu isométrique, il y a une bibliothèque, vous voulez un moteur de physique, il y a une bibliothèque, vous avez quel effet visuel cool, il y a une bibliothèque.

  • PyWeek. :) C'est pour rendre le développement de votre jeu encore plus drôle!

Pour certains, la différence ne sera pas des jeux très simples comme Tetris, trop, mais si vous voulez développer un jeu assez complexe, croyez-moi, vous voulez quelque chose comme PyGame.

13

wxPython est basé sur wxWidgets qui est un toolkit orienté GUI. Il a l'avantage d'utiliser les styles et les décorations fournis par le système sur lequel il fonctionne et il est donc très facile d'écrire des applications portables qui s'intègrent parfaitement dans l'apparence de ce que vous utilisez. Vous voulez une case à cocher? Utilisez wxCheckBox et wxPython gérera les regards et l'interaction. D'autre part, pyGame est orienté vers le développement de jeux et vous rapproche ainsi du hardware de façon que wxPython ne le fait pas (et n'a pas besoin de le faire puisqu'il appelle le système d'exploitation pour dessiner la plupart de ses contrôles) . pyGame a beaucoup de choses liées au jeu comme la détection des collisions, le contrôle fin des surfaces et des couches ou le retournement des tampons d'affichage au moment de votre choix. Cela dit, graphiquement, vous pouvez probablement toujours trouver un moyen de faire ce que vous voulez avec les deux boîtes à outils. Cependant, quand la vitesse compte ou que vous souhaitez implémenter graphiquement des idées de jeu plus imposantes que Tetris, vous êtes probablement mieux avec pyGame. Si vous voulez utiliser beaucoup d'éléments graphiques et n'avez pas besoin des fonctions graphiques et sonores sophistiquées, wxPython vous convient mieux.

La portabilité n'est pas un problème.Les deux sont disponibles pour les trois grands (Linux, OSX, Windows).

C'est plus une question de savoir de quel genre de capacités spéciales vous avez vraiment besoin.

+0

Et si je veux utiliser les deux? C'est à dire. avoir un jeu graphique complet et être capable de le contrôler/configurer avec des widgets GUI standard? –

+2

Vous pouvez envisager d'afficher pyGame-graphics dans une fenêtre wxPython. Essayez ce lien: http://wiki.wxpython.org/IntegratingPyGame – Berufsstudent

+0

Oui, j'ai regardé cela avant, mais il n'a pas l'air très complet. Les descriptions sont quelque peu réservées et douteuses, ce qui est aussi ce que j'ai trouvé dans d'autres endroits. –

Questions connexes