logo

Comment développer un jeu en Python

Le langage le plus adaptable est Python, utilisé dans presque tous les secteurs, notamment le développement de jeux, le développement Web, l'apprentissage automatique, l'intelligence artificielle et les applications GUI.

Le jeu est développé à l'aide du package pygame, qui est une fonctionnalité intégrée de Python. Avec une compréhension rudimentaire de la programmation Python, nous pouvons créer des jeux visuellement attrayants avec une animation, des effets sonores et une musique appropriés en utilisant le module pygame.

Une bibliothèque multiplateforme appelée Pygame est utilisée pour créer des jeux vidéo. Il dispose de bibliothèques sonores et de visuels informatiques pour offrir au joueur une expérience de jeu typique.

Pete Shinners le développe pour remplacer PySDL.

Conditions préalables pour Pygame

Nous devons comprendre le langage de programmation Python pour apprendre Pygame.

java system.out.println

Installer Pygame

Pour installer Pygame, ouvrez un terminal de ligne de commande et entrez la commande suivante.

 pip install pygame 

Nous pouvons également l'installer via l'IDE. Pour un guide d'installation supplémentaire, visitez notre didacticiel complet de Pygame ( https://www.javatpoint.com/pygame ). Vous trouverez ici toutes les explications essentielles de pygame.

Exemple simple de Pygame

Voici l'exemple suivant de création d'une simple fenêtre pygame.

qui a créé l'école
 import pygame pygame.init() screen = pygame.display.set_mode((400,500)) done = False while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True pygame.display.flip() 

Sortir:

Comment développer un jeu en Python

Explication:

Le code fourni ouvre une fenêtre Pygame de 400 x 500 pixels et démarre une boucle qui surveille les événements à tout moment. La boucle change la variable 'done' en True, ce qui termine la boucle et termine le programme si un événement QUIT est détecté (généralement lorsque l'utilisateur quitte la fenêtre). Met à jour l'affichage et s'assure que toutes les modifications sont affichées à l'écran grâce à la méthode 'pygame.display.flip()'. Pour le dire brièvement, le code génère une petite fenêtre Pygame qui reste active jusqu'à ce que l'utilisateur la ferme, présentant une structure de programme de base pilotée par les événements.

Tous les graphiques seront dessinés dans la fenêtre Pygame.

tutoriel java jfx

Comprenons la syntaxe de base du programme ci-dessus.

    importer pygame :C'est le module qui nous donne accès à toutes les fonctions de Pygame.chaleur():Il est utilisé pour initialiser chacun des modules nécessaires du pygame.display.set_mode((largeur, hauteur)):Il est utilisé pour ajuster la taille de la fenêtre. Cela redonnera l’objet en surface. Les actions graphiques sont réalisées à travers l'objet surface.événement.get() :Le résultat est une file d'attente d'événements vide. Si nous ne l'appelons pas, le système d'exploitation percevra le jeu comme ne répondant pas et les messages de la fenêtre commenceront à s'accumuler.QUITTER:Lorsque nous cliquons sur le bouton en forme de croix dans le coin de la fenêtre, il est utilisé pour ignorer l'événement.display.flip() :Toutes les mises à jour du jeu y sont reflétées. Nous devons contacter l'écran chaque fois que nous apportons des modifications. flip() est une fonction.

N'importe quelle forme peut être dessinée sur la surface Pygame, y compris de belles polices et images. De nombreuses méthodes intégrées à Pygame vous permettent de dessiner des formes géométriques à l'écran. Ces formes représentent les premières étapes de la création d'un jeu.

Examinons l'illustration suivante d'un formulaire dessiné sur un écran.

Exemple -

 import pygame from math import pi pygame.init() # size variable is using for set screen size size = [400, 300] screen = pygame.display.set_mode(size) pygame.display.set_caption('Example program to draw geometry') # done variable is using as flag done = False clock = pygame.time.Clock() while not done: # clock.tick() limits the while loop to a max of 10 times per second. clock.tick(10) for event in pygame.event.get(): # User did something if event.type == pygame.QUIT: # If user clicked on close symbol done = True # done variable that we are complete, so we exit this loop # All drawing code occurs after the for loop and but # inside the main while done==False loop. # Clear the default screen background and set the white screen background screen.fill((0, 0, 0)) # Draw on the screen a green line which is 5 pixels wide. pygame.draw.line(screen, (0, 255, 0), [0, 0], [50, 30], 5) # Draw on the screen a green line which is 5 pixels wide. pygame.draw.lines(screen, (0, 0, 0), False, [[0, 80], [50, 90], [200, 80], [220, 30]], 5) # Draw a rectangle outline pygame.draw.rect(screen, (0, 0, 0), [75, 10, 50, 20], 2) # Draw a solid rectangle pygame.draw.rect(screen, (0, 0, 0), [150, 10, 50, 20]) # This draw an ellipse outline, using a rectangle as the outside boundaries pygame.draw.ellipse(screen, (255, 0, 0), [225, 10, 50, 20], 2) # This draw a solid ellipse, using a rectangle as the outside boundaries pygame.draw.ellipse(screen, (255, 0, 0), [300, 10, 50, 20]) # Draw a triangle using the polygon function pygame.draw.polygon(screen, (0, 0, 0), [[100, 100], [0, 200], [200, 200]], 5) # This draw a circle pygame.draw.circle(screen, (0, 0, 255), [60, 250], 40) # This draw an arc pygame.draw.arc(screen, (0, 0, 0), [210, 75, 150, 125], 0, pi / 2, 2) # This function must write after all the other drawing commands. pygame.display.flip() # Quite the execution when clicking on close pygame.quit() 

Sortir:

bouton pour centrer le CSS
Comment développer un jeu en Python

Explication:

Le programme Python donné crée une fenêtre graphique avec différentes formes géométriques dessinées à l'aide du package Pygame. Le programme crée une fenêtre Pygame de 400 x 300 pixels, puis démarre une boucle qui surveille les événements en permanence, en s'assurant que la fenêtre reste ouverte jusqu'à ce que l'utilisateur la quitte. Il efface l'écran au début de cette boucle, puis utilise les routines de dessin de Pygame pour créer une variété de formes avec différentes couleurs et largeurs de trait. Ces formes comprennent des lignes, des polygones, des ellipses, des cercles et des arcs. Chaque formulaire a ses propres coordonnées et propriétés définies. Enfin, 'pygame.display.flip()' est utilisé pour actualiser l'affichage. Le programme termine pygame à la fermeture de la fenêtre.

L'application sert d'exemple de l'adaptabilité et de la variété des capacités de dessin de Pygame et fournit un cadre pour développer des applications graphiques interactives. Les développeurs peuvent créer une vaste gamme de composants visuels dans l'environnement graphique de Pygame en ajustant des paramètres tels que les coordonnées, les couleurs et la largeur des lignes. Cela permet la construction d'applications multimédias interactives, de jeux et de simulations.

Exemple - Développement d'un jeu Snake à l'aide de Pygame

Programme -

 # Snake Tutorial Using Pygame import math import random import pygame import tkinter as tk from tkinter import messagebox class cube(object): rows = 20 w = 500 def __init__(self, start, dirnx=1, dirny=0, color=(255, 0, 0)): self.pos = start self.dirnx = 1 self.dirny = 0 self.color = color def move(self, dirnx, dirny): self.dirnx = dirnx self.dirny = dirny self.pos = (self.pos[0] + self.dirnx, self.pos[1] + self.dirny) def draw(self, surface, eyes=False): dis = self.w // self.rows i = self.pos[0] j = self.pos[1] pygame.draw.rect(surface, self.color, (i * dis + 1, j * dis + 1, dis - 2, dis - 2)) if eyes: centre = dis // 2 radius = 3 circleMiddle = (i * dis + centre - radius, j * dis + 8) circleMiddle2 = (i * dis + dis - radius * 2, j * dis + 8) pygame.draw.circle(surface, (0, 0, 0), circleMiddle, radius) pygame.draw.circle(surface, (0, 0, 0), circleMiddle2, radius) # This class is defined for snake design and its movement class snake(object): body = [] turns = {} def __init__(self, color, pos): self.color = color self.head = cube(pos) self.body.append(self.head) self.dirnx = 0 self.dirny = 1 def move(self): for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() keys = pygame.key.get_pressed() # It will manage the keys movement for the snake for key in keys: if keys[pygame.K_LEFT]: self.dirnx = -1 self.dirny = 0 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] elif keys[pygame.K_RIGHT]: self.dirnx = 1 self.dirny = 0 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] elif keys[pygame.K_UP]: self.dirnx = 0 self.dirny = -1 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] elif keys[pygame.K_DOWN]: self.dirnx = 0 self.dirny = 1 self.turns[self.head.pos[:]] = [self.dirnx, self.dirny] # Snake when hit the boundary wall for i, c in enumerate(self.body): p = c.pos[:] if p in self.turns: turn = self.turns[p] c.move(turn[0], turn[1]) if i == len(self.body) - 1: self.turns.pop(p) else: if c.dirnx == -1 and c.pos[0] = c.rows - 1: c.pos = (0, c.pos[1]) elif c.dirny == 1 and c.pos[1] &gt;= c.rows - 1: c.pos = (c.pos[0], 0) elif c.dirny == -1 and c.pos[1] <= 0 1 0: c.pos="(c.pos[0]," c.rows - 1) else: c.move(c.dirnx, c.dirny) def reset(self, pos): self.head="cube(pos)" self.body="[]" self.body.append(self.head) self.turns="{}" self.dirnx="0" self.dirny="1" # it will add the new cube in snake tail after every successful score addcube(self): dx, dy="tail.dirnx," tail.dirny if dx="=" and self.body.append(cube((tail.pos[0] 1, tail.pos[1]))) elif -1 + 1: self.body.append(cube((tail.pos[0], tail.pos[1] 1))) -1: self.body[-1].dirnx="dx" self.body[-1].dirny="dy" draw(self, surface): for i, c enumerate(self.body): i="=" c.draw(surface, true) c.draw(surface) drawgrid(w, rows, sizebtwn="w" rows x="0" y="0" l range(rows): draw grid line pygame.draw.line(surface, (255, 255, 255), (x, 0), w)) (0, y), (w, y)) this class define game surface redrawwindow(surface): global width, s, snack is used to surface.fill((0, 0, 0)) s.draw(surface) snack.draw(surface) drawgrid(width, surface) pygame.display.update() randomsnack(rows, item): positions="item.body" while true: len(list(filter(lambda z: z.pos="=" positions)))> 0: continue else: break return (x, y) # Using Tkinter function to display message def message_box(subject, content): root = tk.Tk() root.attributes(&apos;-topmost&apos;, True) root.withdraw() messagebox.showinfo(subject, content) try: root.destroy() except: pass # main() function def main(): global width, rows, s, snack width = 500 rows = 20 win = pygame.display.set_mode((width, width)) s = snake((255, 0, 0), (10, 10)) snack = cube(randomSnack(rows, s), color=(0, 255, 0)) flag = True clock = pygame.time.Clock() while flag: pygame.time.delay(50) clock.tick(10) s.move() if s.body[0].pos == snack.pos: s.addCube() snack = cube(randomSnack(rows, s), color=(0, 255, 0)) for x in range(len(s.body)): if s.body[x].pos in list(map(lambda z: z.pos, s.body[x + 1:])): print(&apos;Score: 
&apos;, len(s.body)) message_box(&apos;You Lost!
&apos;, &apos;Play again...
&apos;) s.reset((10, 10)) break redrawWindow(win) pass main() </=>

Sortir:

Comment développer un jeu en Python

Si le serpent se touche, il mettra fin au jeu et affichera le message suivant.

Comment développer un jeu en Python

Pour reprendre, cliquez simplement sur le bouton OK. Le terminal Pycharm affiche notre score (nous avons utilisé l'IDE Pycharm, mais vous pouvez utiliser n'importe quel IDE Python).

combien y a-t-il de millions dans un milliard
Comment développer un jeu en Python

Explication:

Le script Python fourni utilise le package Pygame pour créer un jeu Snake simple. Il établit des classes à la fois pour le Serpent et pour les cubes séparés qui composent son corps. Pygame est utilisé pour configurer la fenêtre de jeu, qui présente une structure en grille et un serpent en mouvement. Après avoir mangé un cube « collation », le serpent s'allonge, et s'il se heurte à lui-même ou aux murs d'enceinte, la partie est terminée.

Afin de gérer la direction du serpent, générer des collations à des points aléatoires de la grille, détecter les collisions entre la tête et le corps du serpent, mettre à jour l'état du jeu et redessiner la fenêtre de jeu, la logique du jeu doit gérer les entrées de l'utilisateur. Pour contrôler les interactions du jeu et les mises à jour visuelles, le script utilise les méthodes de gestion des événements et de dessin de Pygame. Il dispose également d'une fonctionnalité de boîte de message de base qui utilise Tkinter pour afficher des messages aux joueurs, par exemple lorsqu'ils perdent une partie. Dans l'ensemble, le script montre les idées clés de la programmation de jeux Pygame et propose une interprétation rudimentaire du jeu Snake vintage.