Progetti Open Source e notizie del mondo Linux

In Evidenza, Progetti, Tutti

[Progetto] Creiamo il nostro snake in Python

In questo articolo vi spiegherò come creare un gioco in python, il gioco che andremo a realizzare è il classico snake presente nei vecchi telefoni cellulari, ricordate??

 

Download gioco

 

Leggete il resto dell’articolo e vi spiegherò come realizzarlo, passo per passo

2013-08-12-202808_464x365_scrot

 

Pacchetti Necessari

 

Per iniziare dovrete installare nel vostro PC i seguenti pacchetti.

  • python2 (la versione 2.x di python)
  • python2-pygame (per installare la libreria pygame che utilizzeremo per creare il gioco)
  • python2-numpy (una libreria che serve per generare numeri casuali, ci torneranno utili per generare le coordinate della mela)

Installiamo le librerie (Linux)

 

Su linux possiamo installare queste librerie con il seguente comando

se usate una distribuzione basata su debian (come ad esempio ubuntu e le sue derivate) date il comando:

supo apt-get install python2 python2-pygame python2-numpy

Se usate una distribuzione basata su archlinux date il comando:

sudo pacman -S python2 python2-pygame python2-numpy

Ora che il nostro sistema dispone di tutti i pacchetti necessari analizziamo i comandi più importanti da sapere.

 

Codice Sorgente

 

Il sorgente del gioco potete scaricarlo da questo link

Una volta scaricato, scompattate la cartella posizionatevi dentro col terminale e date il comando (oppure anche un semplice doppio click sul file “snake_0.2.py” dovrebbe bastare)

python2 snake_0.2.py

Se avete installato con successo tutti i pacchetti che vi avevo fatto installare il gioco si avvierà (è ancora una versione beta dunque non è perfetto, mancano ancora i suoni, una schermata che vie spiega come giocare e inoltre quando morirete la finestra si chiuderà, ma tutti questi problemi verranno risolti quando rilascerò la versione finale del gioco).

 

Per muovere il serpente dovrete usare le frecce direzionali, se volete mettere in pausa il gioco schiacciate il pulsante “P”, apparirà la schermata di pausa, (per uscire da questa schermata premete i tasti direzionali) infine con il tasto “ESC” uscirete dal gioco.

 

Analizziamo ora alcuni comandi (elencherò solo i più importanti perchè se dovessi elencarli tutti diventerebbe troppo lungo, comunque per alcuni chiarimenti chiedete pure nei commenti, cercherò di chiarirvi ogni dubbio e rispondervi ad ogni domanda).

import pygame, sys, random, time
from pygame.locals import *
from numpy import *

con questi comandi importiamo le varie librerie necessarie al nostro gioco

surface = pygame.display.set_mode((size_w, size_h))

Con questo comando create una finestra (che ho chiamato “surface“) delle dimensioni di “size_w” e “size_h” (nel mio gioco le ho impostate a 460×339).

 

Ora che la nostra finestra di gioco è stata creata iniziamo mettendo lo sfondo, impostiamolo caricando un immagine (che ho creato con gimp), per caricare un’immagine con pygame usiamo il seguente comando.

sfondo = pygame.image.load(“sfondo.png”)

analizzando il comando vediamo che all’interno della variabile “sfondo” andiamo a caricare l’immagine “sfondo.jpg” (se l’immagine non fosse dentro la directory di gioco dobbiamo specificare, oltre al nome dell’immagine, anche il percordo in cui si trova).

 

Creiamo ora la variabile che conterrà il colore del nostro serpente, quale colore volete? io nel mio sorgente ho messo vari colori, scegliete voi quale usare (io ho usato il verde).

BIANCO = (255, 255, 255)
GIALLO = (255, 255, 51)
VERDE = (0, 255, 0)
CELESTE = (0, 255, 255)

di questi comandi qua sopra c’è poco da spiegare, le combinazioni di quei 3 numeri, separati da virgola, formano una tonalità di colore che noi memorizziamo all’interno di quelle variabili, che poi andremo ad usare per dare il colore che vogliamo al serpente.

 

Nel nostro gioco ci sarà anche il punteggio, dunque per il punteggio dobbiamo stabilire un font, per fare ciò usiamo il seguente comando

font = pygame.font.Font(None, 24)

Ormai penso che avete capito il meccanismo, all’interno della variabile “font” mettiamo le impostazioni del font.

 

Ora che il fonto è stato creato, inizializziamo la variabile “punteggio” con il seguente comando

punteggio = font.render(‘Punteggio: %d’ % (punti), True, BIANCO)

all’interno della variabile “punteggio” mettiamo il valore contenuto dentro la variabile “punti” e gli impostiamo il colore “BIANCO“.

 

Ora andremo a vedere come mostrare nella finestra “surface“, che abbiamo creato in precedenza, lo sfondo che abbiamo caricato prima all’interno della variabile “sfondo“.

surface.blit(sfondo, (0, 0))

Questo comando posiziona l’immagine contenuta dentro la variabile “sfondo“, nelle coordinate 0,0 della finestra “surface“.

Con questo metodo potete posizionare anche tutti gli altri oggetti, come la mela, il punteggio, la schermata di pausa e la schermata di game over.

 

Ora che gli elementi sono stati caricati, per far si che li vediamo a schermo dobbiamo aggiornare la schermata, per fare ciò useremo il comando

pygame.display.update()

 

Bene questo minitutorial è finito, spero che vi sia piaciuto e spero che vi abbia aiutato a capire meglio come creare giochi in python grazie a pygame, se avete domande chiedete pure nei commenti, sarò lieto di rispondere.

 

Ovviamente questo è solo un tutorial e non può essere molto esaustivo, se anche voi, come me, desiderate creare videogiochi, dovete avere maggiore conoscenze di programmazione, questo tutorial non vi basterà se gia non avete le basi, per questo motivo vi lascio di seguito i link alla documentazione di python e se volete approfondire meglio pygame date un’occhiata anche a questo.

 

 

Vi ricordo che all’interno dell’archivio troverete i sorgenti e tutte le immagini usate.

Grazie della vostra attenzione.

 

Video del gioco finito