Android

Comment faire un jeu en Python : tutoriel étape par étape

Le 1 février 2022 - 10 minutes de lecture

 

comment faire un jeu en python

Python est connu comme l’un des langages de programmation les plus flexibles et les plus conviviaux pour les débutants. Mais bien que Python offre 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 à comprendre autrement. 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 tutoriels, par exemple, et ne toujours pas comprendre comment créer un jeu en Python ou comment créer une application Web. Dans cet article, nous allons discuter de la façon 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 ?

Quelque chose qui peut être difficile à comprendre pour les nouveaux développeurs est que les langages de programmation existent rarement dans le vide. Lors de la création d’une application Android, par exemple, vous devrez non seulement utiliser Java ou Kotlin (les deux principaux langages de programmation supportés par Google), mais également le SDK Android. Il s’agit du « kit de développement logiciel » et contient un certain nombre de bibliothèques, de classes et d’outils différents qui font fonctionner le code Java sur Android et vous donnent accès à des fonctionnalités uniques aux plates-formes mobiles.

C’est donc le cas avec Python. Apprendre Python n’est pas suffisant pour commencer à construire des choses la plupart du temps : vous avez besoin de code supplémentaire fourni par d’autres développeurs pour faire fonctionner ces programmes. En Python, ces outils externes prennent souvent la forme de « modules ». Ce sont de petits programmes Python qui exécutent des fonctions utiles pouvant prendre en charge votre production.

logo pygame

Pygame est une telle collection 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 beaucoup de travail pour le développeur et accélérer 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 aux moteurs de jeu et aux IDE plus complets comme Unity pourraient trouver Pygame un peu basique. 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 permet également d’utiliser votre imagination et d’aborder votre projet de jeu entièrement à partir de zéro.

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

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

Comment faire un jeu en Python – Un premier projet simple

Je vais chambouler un peu mon approche pour ce tutoriel. Au lieu de vous parler étape par étape d’un jeu, je vais vous donner le code, puis nous vous expliquerons comment tout cela fonctionne.

Ensuite, vous collerez le code suivant. Voici celui que j’ai fait plus tôt:

Code

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 draw_game():
          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
      
      draw_game()
          
pygame.quit()

(Dans un monde parfait, j’utiliserais le cas du serpent pour les coordonnées, mais en toute honnêteté, je trouve cela beaucoup plus rapide et plus clair. Et si cela ne vous dit rien, ne vous inquiétez pas !)

Appuyez sur play et vous devriez être accueilli par un jeu qui vous permet de contrôler un petit carré vert autour de l’écran en essayant d’échapper à un carré rouge. C’est quelque chose d’excitant !

Qu’est-ce que tout cela fait?

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

Installation de pip

Utiliser pip pour installer des modules

Tout d’abord, nous importons le module Pygame avec la ligne importer pygame. Cela sera probablement déjà sur votre machine et sera probablement livré en standard avec votre installation. Sinon, vous pouvez l’installer avec pip. Nous devons également initialiser Pygame avec pygame.init(). Ensuite, nous créons une fenêtre pour afficher notre jeu. « Set_caption » nous permet de donner un titre à notre jeu, affiché en haut de ladite fenêtre.

Code

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 et le méchant, une vitesse pour nous 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 .

Code

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

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

Ceci est suivi en dessinant les 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 ! J’ai pensé qu’il était logique de rendre notre méchant un peu plus gros que le gentil et de le rendre rouge effrayant !

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

Code

def draw_game():
          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()

Voir aussi : Comment appeler une fonction en Python

Comment créer une boucle de jeu en Python

La partie suivante du code est l’endroit où le vrai plaisir se produit. C’est le « standard » que vous verrez probablement dans de nombreuses créations Pygame. Essentiellement, il s’agit d’une boucle qui se répétera tant que la valeur de Cours est défini sur Vrai.

La première ligne de cette boucle ajoute un petit délai. En fait, c’est ce qui définira notre « fréquence d’images » et empêchera que tout se passe trop vite pour que nous puissions le voir !

Code

while run:
      pygame.time.delay(100)

Fondamentalement, tout ce que nous voulons qu’il se produise de manière répétée se bouclera. La première chose que nous mettons ici est un bout de code qui définit le comportement de notre escroc. Cela utilise Et qu’est-ce qui se passerait si et elif (else, if) pour contrôler le flux de code. Si la valeur des coordonnées du joueur est supérieure aux coordonnées du bandit, alors le bandit se déplacera pour changer cela : s’approcher de notre position. Comme nos personnages se déplacent de quelques pixels à la fois (comme défini par vel et méchant Vel variables), j’ai ajouté une petite marge d’erreur.

Code

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 sont à moins de 10 pixels de notre joueur, la partie est terminée ! Cours est défini sur False et le programme quitte la boucle. La déclaration finale après la boucle termine le jeu.

C’est quand même un peu moche, car 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 instable, et si vous étiez en train de créer un jeu, vous feriez des calculs pour vous assurer que le jeu se termine si les personnages se touchent.

Remarquez comment chaque fois que le méchant change de position, nous appelons drawGame() et actualiser l’écran.

Enfin, nous devons obtenir l’avis du joueur et déplacer le personnage du joueur en conséquence. Heureusement, Pygame rend cela très simple :

Code

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

draw_game()

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

Enfin, on quitte le jeu dès que la boucle se termine !

Voici ce qu’il nous reste :

Comment créer un jeu en Python

pas exactement Cyberpunk 2077, mais bon, 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 n’est qu’une question d’apprentissage des compétences nécessaires pour ajouter des fonctionnalités supplémentaires jusqu’à ce que vous ayez quelque chose dont vous êtes satisfait ! 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 en ligne Python. Expérimenter Coder avec Python : formation pour les développeurs en herbe pour seulement 49,99 $. Mais dépêchez-vous car le cours est évalué à environ 700 $.

 

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.