0

私は2Dスクロールシューティングゲームに取り組み始めていますが、pygameが適しているかどうか疑問に思いました。何百ものスプライト(もちろん、ほとんどが弾丸)でスクロールする背景をアニメーション化しながら、60fps近くをヒットしたいと思います。これはpygameで実行可能ですか?私が読んだことから、私はノーに傾いていますが、pygameの経験が豊富な人からの別の意見をお願いします。

pygameでPyOpenGLを使用することも検討していますが、OpenGLの使用経験はまったくありません。この場合、OpenGLはネイティブのpygameグラフィックよりもうまく機能しますか?OpenGL / PyOpenGL / pygameでPyOpenGLを使用するための優れたチュートリアルはありますか?

4

2 に答える 2

0

Pygameは、2DCPUグラフィックスと同じくらい優れています。すべてのグラフィックはCで実装されているため(PyGameはSDLをラップします)、コードは同等のCソフトウェアレンダラーとほぼ同じ速度です。

とは言うものの、それはまだ(基本的に)ソフトウェアレンダラーであり、それを行うように設計されたGPUと呼ばれるすべての最新のコンピューターにこの興味深いデバイスがあります。PyOpenGL / OpenGLはそれを利用するので、もちろん、PyOpenGLはPyGameよりも高速にレンダリングされます。

結論:

PyGameは高速ですが、PyOpenGLほど高速ではありません。何百もの画面上のスプライトの場合、これは主にロジックの問題になります(Pythonロジックは、解釈された言語標準でも低速です)。SDLで書き直すと、高速になります(C / C ++はPythonよりも高速であるため)。PyOpenGLを使用することもできます。この場合、劇的ではありませんが、パフォーマンスが大幅に向上すると予測しています(ただし、使用するのははるかに困難です)。

しかし、私が言ったように、それは主に論理的な問題になると思います。PyOpenGLを使用することについては言うべきことがありますが、彼らが言うように、これまでに行う最大の最適化は、コードが初めて機能するときです。

于 2012-05-18T05:35:13.547 に答える
0

私によると、PygameはPythonでの2Dゲームに最適なソリューションです。最適化されたスプライトアニメーションを使用してSurfacesを保存できるので、コード実行よりも開発プロセスの方が最速の解決策だと思います。

于 2012-04-25T12:38:29.530 に答える