46

私は Pygame を使った経験がありますが、最近は Pyglet が話題になっているようです。

これら 2 つのライブラリはどのように比較されますか? 機能と使いやすさの両方で、一方を他方よりも使用する利点は何ですか?

最後に、一方が他方より Pythonic であると思いますか?

4

5 に答える 5

31

私は小さな2DシューターのためにPygameとPygletの両方を検討していました。ソースコードといくつかのチュートリアルを見た後、Pygletを使用しました。結果にとても満足しました。

Pygletはすぐに機能し、操作が楽しく、概念的には非常にクリーンでした。それは確かに私にはPythonicの感覚を持っていました。簡単で読みやすい例を非常にすばやく実行でき、デコレータを使用してイベント処理に効果を発揮します。また、特定のプログラム構造を強制しなかったため、Pymunkの物理モデリング(http://code.google.com/p/pymunk/)を簡単に組み合わせることができました。

OpenGLをベースにしており、これらの機能を特殊効果に使用できますが、私はそれらの知識がなくても問題なく実行できました。

また、py2exeやpy2appでもうまく機能します。これは、多くの人がPythonインタープリターをインストールしていないため重要です。

欠点は、新しいためWebでの情報が少なくなり、サンプルゲームが少なくなることです。

また、以前のバージョンからかなり変更されたため、現在存在するチュートリアルの一部は古くなっています(主要な追加として「新しいスタイルのイベントループ」とSpriteクラスがあります)。

例をダウンロードして(Astraeaと呼ばれる素敵なAsteroidsクローンが含まれています)、スタイルが気に入ったかどうかを確認することをお勧めします。

于 2008-12-29T02:40:06.980 に答える
31

ライセンス:

  • Pygame:LGPLライセンス
  • Pyglet:BSDライセンス

ライブラリの依存関係:

  • PygameはSDLライブラリに大きく依存しています
  • Pygletは依存関係の少ない純粋なPythonライブラリであり、OpenGLをよりよく理解する必要があると思います

コミュニティ:

  • Pygameは長い間この辺りにあり、多くの人が使っていました
  • Pygletは新しいlibです

観客:

  • Pygameはゲーム開発(カーソル、スプライト、ジョイスティック/ゲームパッドのサポート)を対象としています
  • Pygletはより汎用的です(Spriteクラスがありますが)

pyglet-usersメーリングリストでもこのディスカッションを見つけました:pygame+pyopenglからpygletまで

免責事項:私はまだどちらも使用していません、いくつかのチュートリアルを試しただけです;-)

于 2008-12-16T13:08:52.373 に答える
15

Pyglet は (2D ゲームの場合) ゲーム内でベクター グラフィックスやプリミティブをまったく描画するつもりがなく、ディスクから画像をロードすることに固執する場合に適しています。また、独自のゲーム ループを作成する必要がなく、速度、タイミング、および応答性について心配する必要がないため、はるかにクリーンです。

ただし、オンザフライでグラフィックスを生成し、それらを変数またはファイルとして保存する必要がある場合は、低レベルの OpenGL 関数をいじり回さなければならないため、pyglet はかなり複雑になります。これらのシナリオでは、ソフトウェア レンダリングと Surface クラスを備えた pygame の方がはるかにユーザー フレンドリーです。または、Python Imaging Library を使用して、それを pyglet と連携させることもできます。

明らかに、3D ゲームの場合はとにかく OpenGL 関数をいじる必要があります。その場合は、pygame + PyOpenGL よりも pyglet をお勧めします。

于 2010-12-23T16:08:56.957 に答える
5

Pyglet を補完する高速なスプライト ライブラリRabbytがあることを付け加えておきます。

于 2009-01-05T18:59:37.660 に答える
3

pygame と pyglet の両方を調べた結果、pyglet の方が理解しやすく、数日で簡単なブレイクアウト スタイルのゲームを作成できることがわかりました。

于 2010-03-19T14:00:39.233 に答える