logo

Come sviluppare un gioco in Python

Il linguaggio più adattabile è Python, utilizzato in quasi tutti i settori, incluso lo sviluppo di giochi, lo sviluppo web, l’apprendimento automatico, l’intelligenza artificiale e le applicazioni GUI.

Il gioco è sviluppato utilizzando il pacchetto pygame, che è una funzionalità integrata di Python. Con una conoscenza rudimentale della programmazione Python, possiamo creare giochi visivamente accattivanti con animazioni, effetti sonori e musica appropriati utilizzando il modulo pygame.

Per creare videogiochi viene utilizzata una libreria multipiattaforma chiamata Pygame. Dispone di librerie di suoni e immagini computerizzate per fornire al giocatore un'esperienza di gioco tipica.

Pete Shinners lo sta sviluppando per prendere il posto di PySDL.

Prerequisiti per Pygame

Dobbiamo comprendere il linguaggio di programmazione Python per imparare Pygame.

java elseif

Installazione di Pygame

Per installare Pygame, apri un terminale della riga di comando e inserisci il seguente comando.

aggiungi all'array java
 pip install pygame 

Possiamo anche installarlo tramite IDE. Per ulteriore guida all'installazione, visita il nostro tutorial completo su pygame (https://www.javatpoint.com/pygame). Qui troverai tutte le spiegazioni essenziali di pygame.

Esempio semplice di Pygame

Ecco il seguente esempio di creazione di una semplice finestra pygame.

 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() 

Produzione:

Come sviluppare un gioco in Python

Spiegazione:

Il codice fornito apre una finestra Pygame da 400x500 pixel e avvia un ciclo che controlla continuamente gli eventi. Il ciclo cambia la variabile 'done' in True, che termina il ciclo e termina il programma se viene rilevato un evento QUIT (di solito quando l'utente esce dalla finestra). Aggiorna il display e fa in modo che eventuali modifiche vengano visualizzate sullo schermo grazie al metodo 'pygame.display.flip()'. Per dirla in breve, il codice genera una piccola finestra Pygame che rimane attiva finché l'utente non la chiude, esibendo una struttura di programma di base guidata dagli eventi.

Tutta la grafica verrà disegnata nella finestra pygame.

Comprendiamo la sintassi di base del programma sopra.

Java aprendo un file
    importa pygame:È il modulo che ci dà accesso a tutte le funzioni di Pygame.Calore():Viene utilizzato per inizializzare ciascuno dei moduli necessari di pygame.display.set_mode((larghezza, altezza)):Viene utilizzato per regolare la dimensione della finestra. Restituirà l'oggetto in superficie. Le azioni grafiche vengono eseguite attraverso l'oggetto superficie.evento.get():Il risultato è una coda di eventi vuota. Se non lo chiamiamo, il sistema operativo percepirà il gioco come non risponde e i messaggi della finestra inizieranno ad accumularsi.ESENTATO:Quando facciamo clic sul pulsante con la croce nell'angolo della finestra, viene utilizzato per ignorare l'evento.display.flip():Eventuali aggiornamenti al gioco si riflettono in esso. Dobbiamo contattare il display ogni volta che apportiamo modifiche.flip() è una funzione.

Qualsiasi forma può essere disegnata sulla superficie di Pygame, inclusi bellissimi caratteri e immagini. Numerosi metodi integrati in Pygame ti consentono di disegnare forme geometriche sullo schermo. Queste forme rappresentano i primi passi nella creazione di un gioco.

Esaminiamo la seguente illustrazione di un modulo disegnato su uno schermo.

Esempio -

 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() 

Produzione:

Come sviluppare un gioco in Python

Spiegazione:

Il programma Python creato crea una finestra grafica con diverse forme geometriche disegnate al suo interno utilizzando il pacchetto Pygame. Il programma crea una finestra Pygame da 400x300 pixel e quindi avvia un ciclo che controlla continuamente gli eventi, assicurandosi che la finestra rimanga aperta finché l'utente non la chiude. Cancella lo schermo all'inizio di questo ciclo e quindi utilizza le routine di disegno di Pygame per creare una varietà di forme con colori e larghezze di linea diversi. Queste forme includono linee, poligoni, ellissi, cerchi e archi. Ogni forma ha le sue coordinate e proprietà definite. Infine, 'pygame.display.flip()' viene utilizzato per aggiornare la visualizzazione. Il programma termina pygame alla chiusura della finestra.

L'applicazione funge da esempio dell'adattabilità e della varietà delle capacità di disegno di Pygame e fornisce un quadro per lo sviluppo di applicazioni grafiche interattive. Gli sviluppatori possono creare una vasta gamma di componenti visivi all'interno dell'ambiente grafico di Pygame regolando parametri come coordinate, colori e larghezza delle linee. Ciò consente la costruzione di applicazioni multimediali interattive, giochi e simulazioni.

progettazione di database in dbms

Esempio: sviluppo del gioco Snake utilizzando Pygame

Programma -

 # 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() </=>

Produzione:

miscela omogenea
Come sviluppare un gioco in Python

Se il serpente si tocca, il gioco terminerà e verrà visualizzato il seguente messaggio.

Come sviluppare un gioco in Python

Per riprendere è sufficiente fare clic sul pulsante OK. Il terminale Pycharm mostra il nostro punteggio (abbiamo usato l'IDE Pycharm, ma puoi usare qualsiasi IDE Python).

Come sviluppare un gioco in Python

Spiegazione:

Lo script Python fornito utilizza il pacchetto Pygame per creare un semplice gioco Snake. Stabilisce classi sia per il Serpente che per i cubi separati che compongono il suo corpo. Pygame viene utilizzato per impostare la finestra di gioco, che presenta una struttura a griglia e un serpente in movimento. Dopo aver mangiato un cubo 'snack', il serpente si allunga e se sbatte contro se stesso o contro i muri di cinta, il gioco finisce.

Per gestire la direzione del serpente, generare spuntini in punti casuali sulla griglia, rilevare collisioni tra la testa e il corpo del serpente, aggiornare lo stato del gioco e ridisegnare la finestra del gioco, la logica del gioco deve gestire l'input dell'utente. Per controllare le interazioni di gioco e gli aggiornamenti visivi, lo script utilizza i metodi di gestione e disegno degli eventi di Pygame. Ha anche una funzione di base della finestra di messaggio che utilizza Tkinter per mostrare i messaggi del giocatore, ad esempio quando perde una partita. Nel complesso, la sceneggiatura mostra le idee chiave nella programmazione del gioco Pygame e offre una versione rudimentale del gioco vintage Snake.