Comment apprendre Pygame

Pygame est un ensemble de modules Python multiplates-formes conçus pour la création de jeux. Les modules sont conçus pour être simples, faciles à utiliser et amusants, un élément clé de l'idéologie de Pygame. Dans cet article, je vais vous montrer comment utiliser Pygame et partager des astuces et des ressources pour l'apprendre..

Ce guide suppose que vous savez déjà comment coder en Python. Si ce n'est pas le cas, consultez La meilleure façon d'apprendre Python, Apprendre Python, Le didacticiel Python, Codecademy ou Apprendre Python à la dure pour commencer..

Pourquoi Pygame?

C'est simple

Python est souvent considéré comme le meilleur "premier langage de programmation" à apprendre, et a été félicité pour sa syntaxe facile à apprendre et sa courbe d'apprentissage progressive. Pour cette raison, beaucoup de nouveaux programmeurs commencent par apprendre Python. 

Pygame étend Python, adopte la philosophie de Python et vise à être facile à utiliser. De plus, les nouveaux développeurs de jeux sans expérience en programmation peuvent utiliser Pygame, car ils peuvent rapidement utiliser Python en premier..

Il a une grande communauté

Pygame est disponible depuis 2000 et, depuis lors, une grande communauté s’est construite autour de lui. La communauté affirme que Pygame a été téléchargé des millions de fois et qu'il a reçu des millions de visites sur son site Web ». En raison de la grande communauté, les bogues signalés sont corrigés rapidement, de l'aide est facilement disponible et un grand nombre de fonctionnalités supplémentaires ont été ajoutées. De plus, la communauté veille à ce que le développement de Pygame soit amusant; Par exemple, un concours de jeux Python biannuel est organisé pour promouvoir la plate-forme. La taille de la communauté est ce qui sépare Pygame des autres frameworks de jeu Python.

C'est Open Source

Le fait que Pygame soit une source ouverte signifie que les bogues sont généralement résolus très rapidement par la communauté. Cela signifie également que vous pouvez étendre Pygame à vos besoins et peut-être même redonner à la communauté.. 

Pygame est écrit en C, et jeter un coup d’œil sur le code est un excellent moyen de mieux comprendre le fonctionnement de Python et Pygame..

C'est très portable

Pygame est très portable car il prend en charge Windows, Linux, Mac OS X, BeOS, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX et QNX. Outre ces plates-formes informatiques, un sous-ensemble Pygame pour Android existe. De plus, Pygame ne nécessite pas OpenGL et peut utiliser DirectX, WinDIB, X11, le framebuffer Linux et de nombreuses autres API pour afficher les graphiques. Cela garantit qu'un plus grand nombre d'utilisateurs peuvent jouer à votre jeu..

Commencer

Installation

Avant d’installer Pygame, assurez-vous d’avoir installé Python. Vous remarquerez qu'il existe deux versions de Python: Python 2 et Python 3. Personnellement, je vous recommande d'utiliser Python 2 à côté de Pygame, car Python 2 est plus répandu et il existe des modules Pygame qui ne prennent pas en charge Python 3. Cependant, vous serait toujours capable de faire de grands jeux en utilisant Python 3.

Après vous être assuré qu'une version de Python est en cours d'exécution sur votre ordinateur, vous pouvez aller chercher Pygame sur son site de téléchargement..

IDEs

En plus d'installer les modules Pygame, je vous recommande d'installer un IDE Python, ce qui facilitera la création et la compilation de jeux..

Notez qu'un environnement de développement intégré, appelé IDLE, est déjà fourni avec Python. Cependant, IDLE a souvent été critiqué pour des problèmes d’utilisation et je ne peux personnellement pas le recommander..

Je préfère PyScripter, mais PyCharm, Wing IDE, les outils Python pour Visual Studio et Netbeans sont des options viables. Comme toujours, le choix d'un IDE dépend de vos préférences personnelles. Je vous suggère donc de les essayer toutes et de voir laquelle vous préférez.. 

Ressources

Voici quelques ressources qui vous aideront à démarrer avec Pygame..

Université du Colorado

L'Université du Colorado est une excellente introduction à Pygame. Les diapositives jointes vous permettront de connaître et d'utiliser les principaux composants de Pygame. Après avoir lu ce document, vous devez comprendre les concepts de base de Pygame..

Tutoriels

Il existe une multitude de tutoriels disponibles qui vous apprendront pas à pas Pygame. J'ai sélectionné trois de mes favoris:

  • Didacticiels PyGame - Introduction simple à la programmation de jeux: Couvre les fonctionnalités de base de Pygame
  • Didacticiel PyGame Basics: une série en sept parties commençant au début, avec une section particulièrement intéressante sur la musique et les effets sonores
  • Le livre de jeu Python: commence par les bases mais enseigne des concepts avancés comme les images-objets, la détection de collision au pixel près et le défilement

Série vidéo

Développement de jeux sous Python 3 avec Pygame est une série de didacticiels vidéo disponibles sous forme de liste de lecture YouTube. La série contient 29 vidéos, qui commencent par l’affichage d’images et le rendu du texte, puis permettent d’enseigner l’animation et la saisie utilisateur. Si vous préférez les didacticiels vidéo aux didacticiels textuels, ne manquez pas cette série.. 

Livres

Si vous êtes un débutant en Python et en Pygame, je vous recommande de jeter un oeil à Inventer vos propres jeux d'ordinateur avec Python. Ce livre commence par vous enseigner les bases de Python et vous aide à suivre ces instructions en vous montrant comment créer des jeux simples en ligne de commande. Après vous être assuré de comprendre les bases de Python, le livre passe à l’enseignement de Pygame.

Par contre, si vous avez envie de passer directement à Pygame, Making Games with Python & Pygame est le livre qu'il vous faut. À la fin de ce livre, vous aurez créé 11 jeux et serez prêt à partir seul.. 

Tous ces livres sont gratuits et en ligne, vous pouvez donc commencer tout de suite!

Prochaines étapes

Lire la documentation et le wiki

L'examen de la documentation est une étape importante de votre maîtrise de Pygame. Vous trouverez ici des documents, des tutoriels et des références couvrant toutes les fonctionnalités de Pygame. La documentation vous permettra d’acquérir des connaissances sur tous les aspects de Pygame, au-delà de ce que vous auriez appris grâce aux ressources précédentes..

Le wiki de Pygame vous aidera également à répondre à toutes vos questions sur la plateforme, alors n'hésitez pas à jeter un coup d'œil..

Regardez le code

Regarder le code vous aidera à comprendre comment différentes parties de Pygame interagissent pour créer un jeu complet. De plus, des exemples vous montreront les meilleures pratiques, et vous pourrez apprendre quelques astuces en cours de route..

Consultez les exemples officiels de Pygame pour savoir comment utiliser des modules individuels ou consultez les projets Pygame publics sur GitHub pour voir un ensemble complet de codes.. 

Participer à la communauté

Pygame a un canal IRC et une liste de diffusion actifs. (La liste de diffusion est également disponible dans une interface semblable à un forum.) Les membres de la communauté souhaitent aider les débutants, alors n'hésitez pas à poser des questions.. 

Une fois que vous devenez un expert Pygame, contribuez à la communauté et aidez les autres. Enseigner aux autres vous aidera à apprendre et consolidera les concepts que vous connaissez déjà.. 

Faites votre propre jeu

Les ressources fournies ci-dessus seront plus que suffisantes pour acquérir une solide compréhension de Pygame. De plus, si vous parcourez les ressources, vous aurez créé plusieurs jeux. Cependant, je vous exhorte à créer votre propre création; faites plus que construire du Tic-Tac-Toe ou de la concentration. Tout le monde peut suivre un tutoriel pour faire un jeu. Laissez libre cours à votre créativité et mettez vos compétences à l’épreuve en construisant un original Jeu.  

Conseils de développement

Utiliser des groupes

Pygame est livré avec une fonctionnalité très puissante appelée groupes, à travers le pygame.sprite.Group classe. Un groupe est essentiellement un conteneur pour les objets sprites.

 Par exemple, si je crée plusieurs Balle sprites, je peux les ajouter à un groupe appelé balles:

bullets = pygame.sprite.Group () pour i dans l'intervalle (10): bullets.add (Bullet ())

Travailler avec des groupes est beaucoup plus rapide que de travailler avec des sprites individuels. Vous pouvez simplement appeler Group.update () mettre à jour tous les sprites d'un groupe, ou Group.draw () blit le contenu de la Groupe à ton Surface. De plus, les groupes facilitent la détection des collisions, car Pygame dispose d'une méthode pour vérifier les collisions entre deux groupes: pygame.sprite.groupcollide ()

Convertissez vos surfaces

Assurez-vous de convertir un Surface chaque fois que vous en créez un en appelant le convertir() méthode. Cette méthode modifie le format de pixel d'un Surface pour correspondre à celle de l'écran Surface. Si cette méthode n’est pas appelée, une conversion de pixels devra être effectuée chaque fois que vous bliterez quelque chose à votre écran. Surface-une opération très lente.

 Par exemple, au lieu de:

ballPicture = pygame.image.load ('ball.png')

 appel:

ballPicture = pygame.image.load ('ball.png'). convert ()

ou si vous devez définir l'alpha:

ballPicture = pygame.image.load ('ball.png'). convert_alpha ()

Notez que convert_alpha () n'entraînera pas la même augmentation de performance que convertir(), puisque le format de pixel ne correspondra pas exactement à la Surface la fenêtre. Néanmoins, il en résulte une vitesse de frappe améliorée.

Mise à jour vs. Flip

Tous les deux pygame.display.update () et pygame.display.flip () mettre à jour le contenu de la fenêtre de jeu. Cependant, le simple fait d'appeler ces méthodes met à jour l'écran entier, ce qui ralentit considérablement la cadence. Au lieu de cela, n'envisagez de mettre à jour qu'une partie spécifique de l'écran (chaque fois que des modifications doivent être apportées) en appelant pygame.display.update ()et en passant un rect représentant la zone à mettre à jour dans la méthode. Ce faisant, vous constaterez une nette amélioration des performances..

Notez que, parfois, l’écran entier devra être mis à jour et, dans ces cas, les deux méthodes fonctionneront correctement.. 

Modules Supplémentaires

Rappelez-vous que j'ai mentionné la communauté nombreuse et utile de Pygame plus tôt dans l'article. Je vous recommande de profiter de cette communauté en téléchargeant des modules supplémentaires créés par ses membres. Ces modules contribueront à faciliter le développement rapide de votre jeu et à simplifier le processus de création..

 Mes favoris personnels incluent:

  • Pyganim: facilite l'ajout d'animations de sprites à vos jeux
  • input.py: simplifie la gestion des contrôles dans Pygame lors de l'utilisation de plusieurs méthodes de contrôleur
  • Python Game Utilities: une grande collection d’utilitaires Pygame

Vous pouvez trouver plus de bibliothèques sur le site Web de Pygame.

Jeux exécutables

Si vous voulez que votre jeu soit vraiment multi-plateforme, vous devez envisager le scénario dans lequel vos utilisateurs n'ont pas installé Python et Pygame sur leurs machines..

Pensez à l'extension py2exe pour créer des exécutables Windows et à l'extension py2app pour créer des applications pour Mac OS X. 

Vitrine

Pygame n'a pas été utilisé très souvent dans le commerce, car Python n'est pas connu pour ses capacités de développement de jeux. Néanmoins, Pygame a été utilisé pour créer de nombreux jeux indépendants réussis:

Galcon

Galcon est un jeu de stratégie et d'action multi-joueurs galactique, qui pourrait être le jeu le plus important développé avec Pygame. Il a été primé au Top 10 des jeux de l'année 2007 par GameTunnel, l'un des premiers sites d'analyse de jeux indépendants..

Frettes sur le feu

Frets on Fire, un clone open source de Guitar Hero, a été créé à Pygame, dans le cadre du concours de développement de jeux Assembly 2006 de Unreal Voodoo..

Des lycéennes dangereuses en difficulté!

Le jeu de rôle primé Dangerous High School Girls in Trouble !, du développeur indépendant Mousechief, a été finaliste dans IndieCade 2008..

PyWeek

PyWeek est un défi de programmation de jeux bi-annuel qui n'accepte que les jeux créés en Python. Ainsi, de nombreuses soumissions sont créées en utilisant Pygame. Une liste des lauréats précédents est disponible sur le site Web de PyWeek..

Conclusion

Dans cet article, je vous ai présenté le développement de jeux avec Python et Pygame. J'espère que j'ai réussi à vous intéresser à Pygame et à vous en apprendre davantage. N'hésitez pas à poser vos questions ici ou dans divers forums Pygame. Vous êtes maintenant prêt à commencer votre voyage dans le monde de Pygame. Bonne chance!