Pygame: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti.
 
(30 versioni intermedie di 26 utenti non mostrate)
Riga 5: Riga 5:
|Didascalia =
|Didascalia =
|Sviluppatore = Pygame Community
|Sviluppatore = Pygame Community
|UltimaVersione = 1.9.1
|UltimaVersione =
|DataUltimaVersione = [[6 agosto]] [[2009]]
|DataUltimaVersione =
|UltimaVersioneBeta =
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = multipiattaforma
|SistemaOperativo = multipiattaforma
|Linguaggio = python
|Genere = sviluppo videogiochi
|Genere = sviluppo videogiochi
|Genere2 = Libreria Python
|Genere2 = Libreria Python
|Licenza = [[GNU Lesser General Public License]]
|Licenza = [[GNU Lesser General Public License]]
|SoftwareLibero = sì
|SoftwareLibero = sì
|SitoWeb =
|Lingua =
|Lingua =
|SitoWeb = [http://www.pygame.org pygame.org]
}}
}}
'''Pygame''' è un insieme di moduli [[Python]] progettato per la scrittura di giochi. Si basa sulla libreria [[Simple DirectMedia Layer|SDL]].
'''Pygame''' è un insieme di moduli [[Python]] progettato per la scrittura di giochi. Si basa sulla libreria [[Simple DirectMedia Layer|SDL]].


La prima versione fu rilasciata il [[28 ottobre]] [[2000]], è completamente [[Open Source]] (sotto licenza [[LGPL]]) ed è in continuo sviluppo.
La prima versione è uscita il 28 ottobre [[2000]], è completamente [[Open Source]] (sotto licenza [[LGPL]]) ed è in continuo sviluppo.


== Esempi ==
== Esempi ==
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.
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.


<source lang="python">
<syntaxhighlight lang="python">
import sys, pygame
import sys, time, pygame
pygame.init()
pygame.init()
size = width, height = 320, 240
size = width, height = 320, 240
Riga 44: Riga 43:
screen.fill(black)
screen.fill(black)
screen.blit(ball, ballrect)
screen.blit(ball, ballrect)
time.sleep(0.01)
pygame.display.flip()
pygame.display.flip()
</syntaxhighlight>
</source>


La riga 1 richiama la libreria pygame.py la riga 2 inizializza tutti i moduli (che si possono anche attivare singolarmente).
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 usando un ciclo infinito la muove.
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 ==
== Moduli ==
Di seguito sono elencati i moduli integrati nell' ultima versione di PyGame
Di seguito sono elencati i moduli integrati nell'ultima versione di PyGame


{| class="wikitable"
{| class="wikitable"
Riga 81: Riga 82:
| surfarray || per la manipolazione di immagini con Numeric
| surfarray || per la manipolazione di immagini con Numeric
|-
|-
| time || ccontrolla il tempo
| time || controlla il tempo
|-
|-
| transform || cscala, ruota, sfoglia immagini
| 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 ==
== Voci correlate ==
* [[Python]]
* [[Python]]

== Altri progetti ==
{{interprogetto}}


== Collegamenti esterni ==
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{en}} [http://www.pygame.org Sito ufficiale]
* {{404|[http://www.python-it.org/node/73 Documentazione - python-it.org]}}
* {{cita web|http://www.python.it/|Sito italiano di Python}}


{{portale|software libero|videogiochi}}
{{portale|software libero|videogiochi}}

[[bg:Pygame]]
[[cs:Pygame]]
[[de:Pygame]]
[[en:Pygame]]
[[es:Pygame]]
[[fi:Pygame]]
[[fr:Pygame]]
[[ja:Pygame]]
[[nl:Pygame]]
[[pl:Pygame]]
[[pt:Pygame]]
[[ru:Pygame]]
[[sv:Pygame]]
[[tr:Pygame]]
[[uk:Pygame]]
[[zh:Pygame]]

Versione attuale delle 23:24, 13 mag 2024

PyGame
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereAmbiente di sviluppo di videogiochi
Libreria di Python
SviluppatorePygame Community
Ultima versione2.6.0 (25 giugno 2024)
Sistema operativoMultipiattaforma
LinguaggioC
Python
LicenzaGNU Lesser General Public License
(licenza libera)
Sito webwww.pygame.org

Pygame è un insieme di moduli Python progettato per la scrittura di giochi. Si basa sulla libreria SDL.

La prima versione è uscita il 28 ottobre 2000, è completamente Open Source (sotto licenza LGPL) ed è in continuo sviluppo.

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.

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

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.

Di seguito sono elencati i moduli integrati nell'ultima versione di PyGame

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

[modifica | modifica wikitesto]

Pygame utilizza la libreria Simple DirectMedia Layer (SDL), con l'intenzione di consentire lo sviluppo di giochi per computer in tempo reale senza la meccanica di basso livello del linguaggio di programmazione C e dei suoi derivati.[1] 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 e disegno.[2]

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.[3]

  1. ^ Mark Lutz, Learning Python, 5th Edition, ISBN 978-1449355739. URL consultato il 21 settembre 2021 (archiviato dall'url originale l'8 ottobre 2021).
  2. ^ Pygame docs, su Pygame.org.
  3. ^ Archived copy, su pygame.renpy.org. URL consultato il 14 ottobre 2014 (archiviato dall'url originale il 19 ottobre 2014).

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]