0

私は2つのプロセスでゲームを書いています。OpenGLでレンダリングするための1つ。もう1つは、衝突検出用です。これは、複数のコアを使用できるようにするためです。

ただし、ディスプレイを開かずにpygameサーフェスを使用することはできません。したがって、ビットマスクを使用して、ピクセルの完全な衝突やその他の衝突を行うことはできません。

Surfacesが機能するかどうかを確認するために、単に別のウィンドウを開こうとしましたが、OpenGL関数エラーが発生せずに2番目のpygameウィンドウを開くことはできません。

2つの別々のプロセスでpygameを使用して2つの非OpenGLウィンドウを開くことができますが、私はOpenGLを使用しています。

ディスプレイへのポインタを挿入して、サーフェスの表示を停止できる場所があるかもしれないと考えましたDead Display。2番目のプロセスで「ここでは死んでいない」と言うために操作できるある種のSDL変数。または、ピクセルの完全な衝突を使用する他の方法。

私は、pygameを使用しないピクセルパーフェクトな代替案を受け入れています。

4

2 に答える 2

1

200、レンダリングとコリジョンが同じスレッド、同じ CPU で問題ないはずです。このテストは、四分木なしで循環し、次にそれをオンにします。

次に、ブロッキング コード (ネットワーク) を別のスレッドに移動します。

例の実行からの引用:

ピークを発見。このコンピュータのパフォーマンスは、現在よりも優れていることはありません。通常は 359400 回の衝突チェックがありますが、この四分木では約 241回の衝突チェックに削減されます。

オリジナルは pygame.org ですが、少し編集が必要です: http://pastebin.com/U371LaLy

ここに画像の説明を入力

于 2013-02-09T02:38:01.533 に答える
0

私はピムンクを使用するつもりです。Chipmunk の Python ポート。

私が最初にプログラミングを始めた1年ちょっと前に、私はそれを使ってばかげた実験をしました。とても簡単でした。私はそれを完全に忘れていました。

どのpythonバージョンでもpybox2dを動作させることができませんでした。

于 2013-02-11T07:04:22.700 に答える