Pygame: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti. |
||
(83 versioni intermedie di 45 utenti non mostrate) | |||
Riga 1:
{{Software
|Nome = PyGame
|
|
|Didascalia =
|Sviluppatore = Pygame Community
|
|DataUltimaVersione =
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = multipiattaforma
|Genere = sviluppo videogiochi
|
|Licenza = [[GNU Lesser General Public License]]
|SoftwareLibero = sì
|SitoWeb =
|Lingua =
}}
'''Pygame''' è un insieme di moduli [[Python]] progettato per la scrittura di giochi. Si basa sulla libreria [[Simple DirectMedia Layer|SDL]].
La prima versione
==
Questo codice presume che nella stessa [[directory]] in cui è eseguito ci sia una immagine (di una palla) di nome ball.png che si muoverà velocemente nella finestra.
<syntaxhighlight lang="python">
import sys, time, pygame
pygame.init()
size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
screen = pygame.display.set_mode(size)
ball = pygame.image.load("ball.png")
ballrect = ball.get_rect()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
ballrect = ballrect.move(speed)
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
screen.fill(black)
screen.blit(ball, ballrect)
time.sleep(0.01)
pygame.display.flip()
</syntaxhighlight>
La riga 1 richiama la libreria pygame.py e carica la libreria time. La riga 2 inizializza tutti i moduli (che si possono anche attivare singolarmente).
Il resto del codice crea una finestra, carica la palla nella finestra e la muove usando un ciclo infinito.
La libreria time e la funzione time.sleep(0.01) che servono a rallentare l'animazione di 10 ms, altrimenti troppo veloce, si possono omettere.
== Moduli ==
Di seguito sono elencati i moduli integrati nell'ultima versione di PyGame
{| class="wikitable"
|-
! Modulo !! Descrizione
|-
| cdrom || Gestisce le periferiche cdrom e la riproduzione audio
|-
| cursors || carica le immagini dei cursori, includendo quelli standard
|-
| display || controlla la finestra della schermata nel monitor
|-
| event || gestisce gli eventi e la richiesta di eventi
|-
| font || crea e renderizza i caratteri TrueType
|-
| image || salva e carica immagini
|-
| joystick || gestisce le periferiche joystick
|-
| key || gestisce la tastiera
|-
| mouse || gestisce il mouse
|-
| movie || gestisce la riproduzione di video MPEG
|-
| sndarray || per la manipolazione di suoni con Numeric
|-
| surfarray || per la manipolazione di immagini con Numeric
|-
| time || controlla il tempo
|-
| transform || scala, ruota, sfoglia immagini
|}
==Architettura e caratteristiche==
Pygame utilizza la libreria Simple DirectMedia Layer (SDL), con l'intenzione di consentire lo sviluppo di [[Gioco|giochi per computer]] in tempo reale senza la meccanica di basso livello del linguaggio di programmazione [[C]] e dei suoi derivati.<ref>{{Cita libro|titolo=Learning Python, 5th Edition|autore=Mark Lutz|ISBN=978-1449355739|url=https://python.engineering/learning-python-5th-edition/|accesso=21 settembre 2021|dataarchivio=8 ottobre 2021|urlarchivio=https://web.archive.org/web/20211008150419/https://python.engineering/learning-python-5th-edition/|urlmorto=sì}}</ref> Questo si basa sul presupposto che le funzioni più costose all'interno dei giochi possano essere astratte dalla [[logica]] del gioco, rendendo possibile l'utilizzo di un [[linguaggio di programmazione]] di alto livello, come Python, per strutturare il gioco.
Altre funzionalità di SDL includono matematica vettoriale, rilevamento delle collisioni, gestione del grafico di scene [[sprite 2D]], supporto MIDI, fotocamera, manipolazione di pixel-array, trasformazioni, filtri, supporto avanzato per font [[FreeType|freetype]] e disegno.<ref>{{cita web|url=https://www.pygame.org/docs/ |titolo=Pygame docs|sito=Pygame.org}}</ref>
Le applicazioni che utilizzano Pygame possono essere eseguite su telefoni e tablet [[Android]] con l'uso di Pygame Subset per Android (pgs4a). Suono, vibrazione, tastiera e [[accelerometro]] sono supportati su Android.<ref>{{cita web|url=http://pygame.renpy.org/api.html |titolo=Archived copy |accesso=14 ottobre 2014 |urlmorto=si |urlarchivio=https://web.archive.org/web/20141019204533/http://pygame.renpy.org/api.html }}</ref>
== Note ==
<references/>
== Voci correlate ==
* [[Python]]
== Altri progetti ==
{{interprogetto}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|http://www.python.it/|Sito italiano di Python}}
{{portale|software libero|videogiochi}}
|