in

Comment créer un jeu en Python: une introduction à Pygame

comment faire un jeu en Python

Python est bien connu comme l’un des langages de programmation les plus flexibles et les plus conviviaux pour les débutants. Mais bien que Python ait une expérience d’intégration fantastique, même pour les nouveaux programmeurs les moins expérimentés, c’est en fait plus déroutant pour se familiariser avec d’autres façons. Python est si flexible qu’il n’est pas immédiatement évident de savoir ce que vous pouvez en faire.

Vous pouvez lire une tonne de didacticiels, par exemple, sans comprendre comment créer un jeu en Python ou comment créer une application Web. Dans cet article, nous allons discuter de la manière de créer un jeu très simple en Python à l’aide de Pygame, la sélection populaire de modules conçus pour faciliter la création de jeux simples.

Qu’est-ce que Pygame?

Ce qui peut être difficile à comprendre pour les nouveaux développeurs, c’est que les langages de programmation existent rarement dans le vide. Lorsque vous créez une application Android par exemple, vous devrez non seulement utiliser Java ou Kotlin (les deux principaux langages de programmation pris en charge par Google) mais également le SDK Android. Il s’agit du «kit de développement logiciel» et il contient une multitude de bibliothèques, classes et outils différents qui font fonctionner le code Java sur Android et lui donnent accès aux fonctionnalités exclusives aux plates-formes mobiles.

Il en va de même avec Python. Apprendre Python n’est pas suffisant pour commencer à construire des choses pour la plupart: vous avez besoin de code supplémentaire fourni par d’autres développeurs pour faire fonctionner ces programmes. En Python, ces outils externes prennent généralement la forme de «modules». Ce sont de petits programmes Python qui exécutent des fonctions utiles qui peuvent prendre en charge votre production.

logo pygame

Pygame est l’un de ces ensembles de modules. Et comme son nom l’indique, Pygame fournit de nombreuses fonctions utiles pour le développement de jeux. Cela signifie des choses comme dessiner des graphiques sur l’écran et jouer des sons. En fournissant des fonctions prêtes à l’emploi comme celle-ci, Pygame peut économiser un développeur une énorme quantité de travail et rationaliser le processus. Ainsi, lorsque vous demandez comment créer un jeu en Python, la plupart des gens vous diront d’utiliser Pygame!

Cela dit, ceux qui sont habitués à des moteurs de jeu plus complets et à des IDE comme Unity peuvent trouver que Pygame est quelque peu dépouillé. Vous ne trouverez pas de physique intégrée ni d’interface de glisser-déposer sophistiquée ici! Mais bien que cela puisse augmenter la quantité de travail pour vous en tant que développeur, cela vous libère également pour utiliser votre imagination et pour aborder votre projet de jeu entièrement à partir de zéro.

Voir aussi  Un téléphone enroulable arrive demain mais ce n'est pas de LG

(C’est une bonne chose, honnête!)

Pygame a été écrit par Pete Shinners et a été publié en 2000. Il s’agit d’un projet communautaire depuis lors et est actuellement publié sous la licence publique générale limitée du logiciel libre libre GNU.

Comment créer un jeu en Python – Un premier projet simple

Je vais tourner un peu mon approche sur sa tête pour ce tutoriel. Au lieu de vous expliquer un jeu étape par étape, je vais plutôt vous donner le code, puis nous allons expliquer comment tout cela fonctionne.

Tout d’abord, assurez-vous d’avoir lu notre introduction de base au code Python:

Cela vous familiarisera avec les bases afin que vous puissiez suivre.

Vous aurez également besoin d’un IDE Python ou d’un éditeur de code, que vous pouvez découvrir ici:

Ensuite, vous allez passer le code suivant. En voici une que j’ai créée plus tôt:

import pygame
pygame.init()
win = pygame.display.set_mode((1280, 720))
pygame.display.set_caption("Squarey")
x = 100
y = 100
baddyX = 300
baddyY = 300
vel = 6
baddyVel = 4
run = True
def drawGame():
          win.fill((0, 0, 0))
          pygame.draw.rect(win, (0, 0, 255), (x, y, 20, 20))
          pygame.draw.rect(win, (255, 0, 0), (baddyX, baddyY, 40, 40))
          pygame.display.update()

while run:
      pygame.time.delay(100)

      if baddyX < x - 10: baddyX = baddyX + baddyVel drawGame() elif baddyX > x + 10:
          drawGame()
          baddyX = baddyX - baddyVel
      elif baddyY < y - 10: baddyY = baddyY + baddyVel elif baddyY > y + 10:
          baddyY = baddyY - baddyVel
      else:
          run = False
      
      for event in pygame.event.get():
            if event.type == pygame.QUIT:
                  run = False

      keys = pygame.key.get_pressed()

      if keys[pygame.K_LEFT]:
            x -= vel

      if keys[pygame.K_RIGHT]:
            x += vel
      
      if keys[pygame.K_UP]:
            y -= vel
      
      if keys[pygame.K_DOWN]:
            y += vel
      
      drawGame()
          
pygame.quit()   

Appuyez sur play et vous devriez être accueilli avec un jeu qui vous permet de contrôler un petit carré vert autour de l’écran en essayant d’éviter un carré rouge. C’est passionnant!

Que fait tout cela?

Toutes nos félicitations! Vous venez d’apprendre à créer un jeu en Python! Sauf que vous ne savez probablement pas ce que tout cela fait ou pourquoi nous l’avons fait comme nous l’avons fait. Alors allons-y, d’accord?

Installation de pip

Utilisation de pip pour installer des modules

Tout d’abord, nous importons le module Pygame avec la ligne importer pygame. Ce sera probablement déjà sur votre machine et est probablement venu par défaut avec votre installation. Si ce n’est pas le cas, vous pouvez l’installer avec pip. Nous devons également initialiser Pygame avec pygame.init (). Ensuite, nous créons une fenêtre pour que notre jeu s’affiche. «Set_caption» nous permet de donner à notre jeu un titre, affiché en haut de ladite fenêtre.

import pygame
pygame.init()
win = pygame.display.set_mode((1280, 720))
pygame.display.set_caption("Squarey")

Dans la section suivante, nous définissons un tas de variables: des coordonnées pour nous-mêmes et le méchant, une vitesse pour nous-mêmes et le méchant, et un booléen (valeur vraie ou fausse) qui nous indique si le jeu est en cours d’exécution ou non .

x = 100
y = 100
baddyX = 300
baddyY = 300
vel = 6
baddyVel = 4
run = True

Il y a ensuite une petite fonction appelée drawGame ()Ici, nous remplissons d’abord l’écran avec une couleur vierge (noir). Cela signifie que nous pouvons déplacer la position de nos personnages sans laisser de trace. Une autre option serait de dessiner les personnages sur eux-mêmes en noir.

Voir aussi  Examen du chargeur sans fil Native Union Dock: une option à la mode

Ceci est suivi par le dessin des deux carrés. Nous les plaçons à l’intérieur de la fenêtre, nous leur donnons des codes de couleur RVB, puis nous définissons les coordonnées X et Y avant d’ajouter la largeur et la hauteur. N’oubliez pas: le long du couloir et en bas des escaliers! Je pensais que cela avait du sens de rendre notre méchant un peu plus grand que le bon gars, et de le rendre effrayant en rouge!

Enfin, nous appelons pygame.display.update (), afin que ces éléments s’affichent réellement à l’écran.

def drawGame():
          win.fill((0, 0, 0))
          pygame.draw.rect(win, (0, 0, 255), (x, y, 20, 20))
          pygame.draw.rect(win, (255, 0, 0), (baddyX, baddyY, 40, 40))
          pygame.display.update()

Si vous n’êtes pas sûr de ce qu’est une fonction, consultez ce petit didacticiel astucieux:

Comment créer une boucle de jeu en Python

La partie suivante du code est l’endroit où le vrai plaisir se produit. Il s’agit du «passe-partout» que vous verrez probablement dans de nombreuses créations Pygame. Il s’agit essentiellement d’une boucle qui continuera à se répéter tant que la valeur de courir est défini sur True.

La première ligne de cette boucle ajoute un court délai. En effet, c’est ce qui va fixer notre «framerate» et éviter que tout ne se passe trop vite pour que nous puissions même le voir!

while run:
      pygame.time.delay(100)

Fondamentalement, tout ce que nous voulons répéter va se mettre en boucle. La première chose que nous mettons ici est un peu de code qui définit le comportement de notre méchant. Cela utilise si et elif (else, if) pour contrôler le flux du code. Si la valeur des coordonnées du joueur est plus grande que les coordonnées du méchant, alors le méchant se déplacera pour changer cela: se rapprocher de notre position. Parce que nos personnages se déplacent de quelques pixels à la fois (comme défini par le vel et baddyVel variables), j’ai ajouté une petite marge d’erreur.

      if baddyX < x - 10: baddyX = baddyX + baddyVel drawGame() elif baddyX > x + 10:
          drawGame()
          baddyX = baddyX - baddyVel
      elif baddyY < y - 10: baddyY = baddyY + baddyVel elif baddyY > y + 10:
          baddyY = baddyY - baddyVel
      else:
          run = False

Cependant, si les coordonnées se situent dans les 10 pixels de notre joueur, la partie est terminée! courir est défini sur False et le programme quitte la boucle. La dernière déclaration suivant la boucle quitte le jeu.

Voir aussi  Voici le téléphone VAIO Sony Ericsson qui n'a jamais été

C’est toujours un peu moche, vu que les coordonnées définissent le coin supérieur gauche du carré, pas le centre. Cela signifie que la détection de collision est extrêmement bancale, et si vous faisiez vraiment un jeu, vous feriez des calculs pour vous assurer que le jeu se termine si les personnages se touchent.

Remarquez que chaque fois que le méchant change de position, nous appelons drawGame () et rafraîchissez la toile.

Enfin, nous devons obtenir la contribution du joueur et déplacer le personnage du joueur conformément à cela. Heureusement, Pygame rend cela très facile:

for event in pygame.event.get():
            if event.type == pygame.QUIT:
                  run = False

keys = pygame.key.get_pressed()

if keys[pygame.K_LEFT]:
x -= vel

if keys[pygame.K_RIGHT]:
x += vel

if keys[pygame.K_UP]:
y -= vel

if keys[pygame.K_DOWN]:
y += vel

drawGame()

Comme vous l’avez peut-être compris, la première partie de ce code permet également au joueur de quitter en cliquant sur le bouton croix.

Enfin, on quitte le jeu une fois la boucle terminée!

Voici ce qu’il nous reste:

Comment créer un jeu en Python

Ce n’est pas exactement Cyberpunk 2077, mais au moins c’est fini! #brûler

Où aller en partant d’ici

Vous savez maintenant comment créer un jeu en Python! Au moins, vous savez comment faire des carrés mobiles sur un écran… Mais j’espère que cela suffit pour vous donner une idée de la façon dont Pygame peut étendre les capacités de Python vanille. Le reste consiste simplement à acquérir les compétences dont vous avez besoin pour ajouter des fonctionnalités supplémentaires, jusqu’à ce que vous soyez satisfait de quelque chose! Consultez la documentation officielle ici.

Ou, si vous souhaitez accélérer votre développement et acquérir des compétences commercialisables, pourquoi ne pas suivre un cours en ligne? C’est le moyen le plus rapide d’apprendre correctement Python, et nous avons même un guide pratique des meilleurs cours Python en ligne. Essayer Codage avec Python: formation pour les développeurs en herbe pour seulement 49,99 $. Dépêchez-vous cependant, car le cours est évalué à environ 700 $.

Written by Jérémie Duval

15 meilleurs jeux multijoueurs Android!

Dead by Daylight – Cross-Play, Cross-Friends et Cross-Progression arrivent