問題タブ [pygame]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
23064 参照

python - 文字列に含まれる Python コードの実行

私は pygame と box2d を使用してゲーム エンジンを作成しています。キャラクター ビルダーでは、キーダウン イベントで実行されるコードを記述できるようにしたいと考えています。

私の計画は、キャラクター ビルダーにテキスト エディターを用意して、次のようなコードを記述できるようにすることでした。

テキスト エディターの内容を文字列として取得し、Character のこのメソッド内のメソッドでコードを実行します。

それを行う最善の方法は何ですか?

0 投票する
1 に答える
263 参照

python - Pygame サーフェスの 1 つの側面を更新する

基本的にスケッチをスケッチするPythonで書かれたアプリケーションがあります。WASDと矢印キーでピクセルを移動すると、跡が残ります。ただし、画面上のピクセル数のカウンターを追加したいと考えています。サーフェス全体を更新せずに、ピクセル描画を pwning せずにカウンターを更新するにはどうすればよいですか?

0 投票する
2 に答える
1466 参照

python - Python でサーフェスの一部を更新する、または透明なサーフェス

基本的にスケッチをスケッチするPythonで書かれたアプリケーションがあります。WASDと矢印キーでピクセルを移動すると、跡が残ります。ただし、画面上のピクセル数のカウンターを追加したいと考えています。サーフェス全体を更新せずに、ピクセル描画を pwning せずにカウンターを更新するにはどうすればよいですか?

または、下の描画面が見えるように、テキスト以外は完全に透明な面を作成できますか?

0 投票する
3 に答える
6021 参照

graphics - Linux/X11でpygameでティアリングを回避する方法

私は(Debian / Lennyで)pygameで遊んでいます。ブリットの厄介な引き裂き(フルスクリーンまたはウィンドウモード)を除いて、うまく機能しているようです。

デフォルトのSDLX11ドライバーを使用しています。グーグルは、X11がvsync機能を提供しないことはSDLの既知の問題であり(FULLSCREEN|DOUBLEBUF|HWSURFACEフラグで作成されたディスプレイでも)、代わりに「dga」ドライバーを使用する必要があることを示唆しています。

ただし、実行中

でpygameの初期化をスローします

xdpyinfoXFree86-DGA拡張機能が存在することを示していますが)。

だから:涙のないvsyncedフリップを取得するための秘訣は何ですか?このdgaを機能させるか、他のメカニズムを使用しますか?

0 投票する
4 に答える
477 参照

python - ゲーム デザイン - ボーナスの処理 / ダック タイピング - python

私は現在、自分のゲーム デザインで設計上の問題に直面しています。ひどいものではありませんが、十分に気になるので、他の人の意見を聞きたいです :-)

私は現在 pygame を試しています。小さなスペース シューターを開発しましたが、いくつかのボーナスを処理したいと考えています。

現在、私は現在実装されているすべてのボーナスを派生させる抽象クラス ボーナスを持っています: プレイヤーにいくらかのヘルスを戻す「ヘルス ボーナス」、プレイヤーのヘルスを 1 に落とす「デス ボーナス」です。

私のゲームループでは、これが私がしていることです(大まかに):

そして、プレイヤーにボーナスを使うように言った直後

これまでのところはすべて問題ありませんが、プレイヤーが撃ったときに爆発して周囲の敵を殺す「爆弾ボーナス」を追加したいと思います。

この「ボーナス」は、私の抽象クラス Bonus の「use(target)」メソッドを他のものと同じように実装していますが、そのようなボーナスをプレーヤーのボーナスのリストに追加するのはちょっと悪い気がします。

ボーナスの背後にある概念は、これが「何かに何かをするもの」であるということです。以前は私のプレーヤークラスのターゲットでしたが、今ではそれほど明確ではありません...もちろん、どのボーナスがどこにあるかを検出した後に player.useBonuses() を呼び出す代わりにたとえば、ボーナスのタイプを(isinstanceを使用して)テストできましたが、ダックタイピングについて読んだすべての議論の後、なぜそれがpythonicな方法なのか、ボーナスの問題をどのように管理できるのか疑問に思っていますか?

ここまで読んでくれてありがとう、皆さんが私を助けてくれることを願っています!

よろしく

0 投票する
2 に答える
2611 参照

python - アウトライン化されたフォントをレンダリングする良い方法は何ですか?

私は pygame を使用して python でゲームを作成しており、画面にテキストをレンダリングする必要があります。

テキストが表示されている背景の種類を気にする必要がないように、このテキストをアウトライン付きの単色でレンダリングしたいと考えています。

pygame.font は、この種のことを直接行うためのサポートを提供していないようですが、これを達成するための良い解決策があるかどうか疑問に思っていますか?

0 投票する
5 に答える
1999 参照

python - Pythonで処理をエミュレート?

Python 以外の処理に似た基本的なプログラム アニメーション フレームワークを探しています。つまり、ピクセル操作が可能で、基本的な描画/色のプリミティブがあり、アニメーションに適したものです。pygame はほとんど最善の策ですか、それとも他のオプションはありますか?

0 投票する
2 に答える
5580 参照

python - ボードゲームシミュレーターの作成 (Python?) (Pygame?)

私は昔からのお気に入りのプログラミングに取り組み始めることにしました。私はこれまでゲームをしたことがなく、Python で大規模なプロジェクトを行ったこともありません。

ゲームは古いアバロン ヒル ゲームロシア キャンペーンです。

私はPyGameで少し遊んでいて、PyGameでこれをやろうとしない理由があり、他のエンジン/言語を求めていないかどうか疑問に思っていました.

これを構築するために Pygame を使用することの欠点は何でしょうか?

私は AI については心配していません。主に、ゲームの最小限の 2 プレーヤー バージョンを起動して実行したいだけです。ボーナスは、ゲームの状態を保存する機能と、ネットワーク経由でプレイする機能です。

このプロジェクトを開始するための「すべきこと」と「すべきでないこと」を教えていただければ幸いです。

0 投票する
2 に答える
923 参照

python - Pygameとblitting:白地に白=灰色?

ヒートマップを作成するためにpygame(1.9.0rc3、ただしこれは1.8.1でも発生します)を使用しています。ヒートマップを作成するために、白い背景と非常に不透明度の低い灰色のドットが端で正確に停止する、小さな24ビットの11x11pxドットPNG画像を使用します。

ドット画像http://img442.imageshack.us/img442/465/dot.png

ドットの周りの領域は、本来あるべき完全な白、#ffffffです。ただし、pygameを使用して、BLEND_MULTを使用して画像を新しいサーフェスに複数回ブリットすると、ドットの背景が完全な白ではないかのように灰色の正方形が表示されます。これは意味がありません。

次のコードと含まれている画像は、これを再現できます。

コードを実行すると、次の画像が表示されます。

ブレンド後の結果の画像http://img263.imageshack.us/img263/4568/result.png

これが起こる理由はありますか?どうすれば回避できますか?

0 投票する
3 に答える
3912 参照

python - PyOpenGL+Pygameはフルスクリーンで60FPSに制限されています

私は現在pygameで書かれたゲームエンジンに取り組んでおり、OpenGLサポートを追加したいと思いました。

pygameとOpenGLを連携させる方法を確認するためのテストを作成しました。ウィンドウモードで実行すると、150〜200fpsで実行されます。フルスクリーンで実行すると(ウィンドウを設定するときにFULLSCREENフラグを追加するだけでした)、60fpsに低下します。パフォーマンスが大幅に低下したかどうかを確認するために、さらに多くの描画関数を追加しましたが、常に60fpsで実行されていました。

OpenGLにフルスクリーンで実行されていることを伝えるために何か特別なことをする必要がありますか、それともこれはOpenGLの制限ですか?

(私はWindows XPで実行しています)