7

私はPythonを初めて使用しますが、ゲームを作成してPythonを学びたいので、pygameが最良の選択肢のようです。PyPyはPythonの最速の実装であるため(私は思う)、それを使用することにしました。しかし、私はそれら2つを一緒に機能させる方法がわかりません。

私は窓にいます。

誰かが私に必要なことを段階的に教えてくれたら本当にありがたいです。

これまでに、PyPyをインストール(フォルダーに抽出)し、.pyファイルを開くためのデフォルトとしてpypy.exeを設定し、Pygameをインストールして、サンプルの.pyファイルの1つを実行してみました。ファイルの最初のインポート行で「modulepygamenotfound」エラーが発生します。

4

4 に答える 4

8

pygame はpypy と互換性がないため、使用するには cPython に固執する必要があります。


更新 (2018 年 4 月) :

この回答で指摘されているように、PyPy v6.0リリースは pygame で動作するようになりました - 現在の安定版 (pygame 1.9.3) リリースではまだですが、現在の開発ブランチ (1.9.4.dev0) では動作します。

によってubuntu 17.10でテストされました:

  • Linux 用の最新のコンパイル済みバージョンのダウンロードと解凍
  • pygame のビルド依存関係のインストール:sudo apt build-dep python-pygame
  • ピップのインストール:./bin/pypy3 -m ensurepip
  • パイゲームのインストール:./bin/pypy3 -m pip install 'Pygame>=1.9.4.dev0'
  • デモの実行:./bin/pypy3 -m pygame.examples.aliens

pypy3 と pypy2 の両方のバージョンで動作します。

于 2012-11-29T21:42:14.293 に答える
4

Pygame ゲームは、実際には Python コードの実行にほとんど時間を費やしません。大部分は、SDLfillflip運用に費やされています。ほとんどfillの は不要です。これはどれほど重要ですか?さて、私のコンピュータを取ります。背景を 1 色で塗りつぶすだけのループを持つゲームを書いたとします。40fpsくらい出ます。これは、基本的にすべてのピクセルに個別に書き込みを行うためです。これは、フレームごとに 200 x 300 = 60000 の操作を使用して何もしません。

背景全体を塗るのではなく、前のフレームに描かれた部分だけを塗ってください。

これにより、コードが少し複雑になりますが、パフォーマンスが大幅に向上します

また、 cProfileを実行して、問題のある領域がどこにあるかを確認することを忘れないでください。見て、推測しないでください。

于 2012-11-29T21:58:23.173 に答える
3

PyPy v6 (2018 年 4 月) では状況が改善され、PyPy が PyGame やその他の C Python 拡張機能と互換性を持つようになるようです。例については、 https://renesd.blogspot.co.uk/2018/03/pygame-on-pypy-usable.htmlを参照してください。

于 2018-04-26T14:10:38.537 に答える