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..
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..
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.
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..
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..
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..
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..
Voici quelques ressources qui vous aideront à démarrer avec Pygame..
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..
Il existe une multitude de tutoriels disponibles qui vous apprendront pas à pas Pygame. J'ai sélectionné trois de mes favoris:
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..
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!
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..
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..
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à..
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.
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 ()
.
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.
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..
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:
Vous pouvez trouver plus de bibliothèques sur le site Web de Pygame.
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.
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 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..
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..
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 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..
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!