Domanda

Ho avuto qualche esperienza con Pygame, ma sembra che ci sia un sacco di buzz intorno pyglet in questi giorni.

In che modo queste due librerie confrontare? Quale sarebbe il vantaggio di utilizzare uno sopra l'altro, sia nelle caratteristiche e facilità d'uso?

Infine, vuoi dire che uno è più Pythonic rispetto agli altri?

È stato utile?

Soluzione

Stavo considerando sia Pygame e pyglet per un piccolo sparatutto 2D, e dopo aver guardato il codice sorgente e alcuni tutorial andato con pyglet. Sono stato molto felice con i risultati.

pyglet lavorato subito ed era piacevole con cui lavorare, e concettualmente molto pulita. Certamente aveva una Pythonic sente a me: si potrebbe ottenere un esempio semplice e leggibile andando molto rapidamente, e utilizza decoratori con buoni risultati per la gestione degli eventi. Inoltre non forzare una particolare struttura del programma, che ha reso facile per me, per mescolare nella modellazione fisica Pymunk ( http://code.google.com/p/pymunk/ ).

Anche se è basata su OpenGL ed è possibile utilizzare queste funzioni per gli effetti speciali, sono stato in grado di fare bene anche senza alcuna conoscenza di loro.

Funziona bene anche con py2exe e py2app, il che è importante perché un sacco di persone non hanno un interprete Python installato.

Sul lato negativo, c'è meno informazioni su di esso sul web, perché è più recente, così come un minor numero di giochi di esempio da guardare.

Inoltre, è cambiato un bel po 'rispetto alle versioni precedenti, in modo da alcune delle esercitazioni che sono ora ci sono obsolete (c'è il "ciclo di eventi nuovo stile" e la classe Sprite come importanti aggiunte.)

Vorrei consigliamo di scaricare gli esempi (c'è un bel clone di Asteroids chiamato Astrea incluso) e vedere se vi piace lo stile.

Altri suggerimenti

Pygame: licenza LGPL

pyglet: licenza BSD

Pygame si basa su librerie SDL pesantemente

pyglet è una libreria pura pitone con un minor numero di dipendenze, penso che richiede una migliore comprensione delle OpenGL

Pygame è qui intorno per molto tempo, un sacco di gente ha usato

pyglet è un nuovo lib

Pygame è orientata verso lo sviluppo di giochi (cursori, sprite, joystick / gamepad supporto)

pyglet è scopo più generale (anche se ha una classe Sprite)

Ho trovato anche questa discussione sulla pyglet mailing list degli utenti: da pygame + PyOpenGL a pyglet

Disclaimer: Non ho usato sia ancora provato solo alcuni tutorial; -)

pyglet è buona (per i giochi 2D) se non si ha intenzione di trarre grafica vettoriale o primitive all'interno del gioco stesso, e solo rispettare caricare le immagini dal disco. E 'anche molto più pulito, perché non c'è bisogno di scrivere il proprio ciclo di gioco e devono preoccuparsi di velocità e la tempistica e la reattività.

Tuttavia, se avete mai generare la grafica on-the-fly, e poi salvarli, sia come variabile o come file, quindi pyglet diventa notevolmente più complicato perché si inizia dover impazzire con il basso livello funzioni OpenGL. In questi scenari, Pygame è molto più user-friendly, con il suo rendering software e la classe di superficie. Oppure si potrebbe usare Python Imaging Library e interfacciarsi con pyglet.

Ovviamente, per i giochi 3D, si stanno per avere a impazzire con le funzioni OpenGL in ogni caso, in questo caso vi consiglio di pyglet oltre Pygame + PyOpenGL.

Vorrei aggiungere che c'è una biblioteca sprite veloce Rabbyt che può essere una buona complemento per pyglet.

Dopo aver guardato sia Pygame e pyglet ho trovato pyglet più facile da prendere e stato in grado di scrivere un semplice gioco di stile di breakout nel giro di pochi giorni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top