問題タブ [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 投票する
1 に答える
11473 参照

python - PyGameでスプライトのマウスクリックに応答するにはどうすればよいですか?

PyGame でスプライトをマウスクリックに応答させる標準的な方法は何ですか?

私のイベントループでは、簡単なものがあります:

それに関するいくつかの質問:

  1. これは、マウス クリックに応答する最良の方法ですか?
  2. マウスがスプライト上でしばらく押されたままになるとどうなりますか? そこから単一のイベントを作成するにはどうすればよいですか?
  3. これは、すべてのスプライトにクリックを通知する合理的な方法ですか?

前もって感謝します

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

python - Pygameの完全に透明なウィンドウ?

Pygameで完全に透明なウィンドウを取得することは可能ですか(デスクトップを参照してください)?フレームなしでウィンドウを作成する方法を見つけましたが、それを透明にする明確な方法はないようです。

WindowsとMacOSXの両方に対応するソリューションがある限り、システム固有のテクノロジー/フレームワークに結び付けたいと思いますが、どちらの方向を向いているのかわかりません。

私が見つけた唯一のトピックは、 wxPythonを使用することをお勧めします。これは、この特定のプロジェクトで実行できることではありません(Pygameである必要があります)。

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

python - 3つ以上のキーが同時に押されたときにPyGameがイベントを受信しない

私はPyGameで簡単なゲームを開発しています... ロケット船が飛び回って物を撃っています。


質問:一度にあまりにも多くのキーが押されると、pygame がキーボード イベントの発行を停止するのはなぜですか?

キー処理について:KEYSTATE_FIRE, KEYSTATE_TURNLEFTプログラムには、 などの多くの変数があります。

  1. KEYDOWNイベントが処理されると、対応する変数が True に設定さKEYSTATE_*れます。
  2. イベントが処理されるKEYUPと、同じ変数が False に設定されます。

問題:UP-ARROWとが同時に押されている 場合、LEFT-ARROWが押されたときに pygame はKEYDOWNイベントを発行しませんSPACE。この動作はキーによって異なります。文字を押すと、pygame がKEYDOWN追加のキーのイベントの発行を停止する前に、約 5 個の文字を保持できるようです。

検証:メイン ループでは、受信した各イベントを単純に出力して、上記の動作を検証しました。

コード:参考までに、この時点で重要なイベントを処理する (大雑把な) 方法を次に示します。

このシーケンスを押す場合:

  • a (down)
  • s (down)
  • d (down)
  • f (down)
  • g (down)
  • h (down)
  • j (down)
  • k (down)
  • a (up)
  • s (up)
  • d (up)
  • f (up)
  • g (up)
  • h (up)
  • j (up)
  • k (up)

出力は次のとおりです。

  • <Event(2-KeyDown {'scancode': 30, 'key': 97, 'unicode': u'a', 'mod': 0})>
  • <Event(2-KeyDown {'scancode': 31, 'key': 115, 'unicode': u's', 'mod': 0})>
  • <Event(2-KeyDown {'scancode': 32, 'key': 100, 'unicode': u'd', 'mod': 0})>
  • <Event(2-KeyDown {'scancode': 33, 'key': 102, 'unicode': u'f', 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 30, 'key': 97, 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 31, 'key': 115, 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 32, 'key': 100, 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 33, 'key': 102, 'mod': 0})>
  • <Event(2-KeyDown {'scancode': 36, 'key': 106, 'unicode': u'j', 'mod': 0})>
  • <Event(2-KeyDown {'scancode': 37, 'key': 107, 'unicode': u'k', 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 36, 'key': 106, 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 37, 'key': 107, 'mod': 0})>

これはよくある問題ですか?回避策はありますか? そうでない場合、pygame を使用する際の複数キー制御の問題を処理する最良の方法は何ですか?

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

python - pygame 関数が無視されているようです

衝突検出をテストする比較的単純なプログラムを構築しています。現時点ではすべて正常に動作していますが、背景色をランダムに変更しようとしています。唯一の問題は、関数を完全にスキップしているように見えることです。これを行う;

無視されているのはColourCheck機能ですが、その理由は何ですか?

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

python - Python と pygame で MS Paint のクローンを作成する方法

私が見ているように、マウスイベントを処理して絵を描く方法は 2 つあります。

1 つ目は、マウスの移動を検出し、マウスがある場所に線を引くことです (ここに示す) 。ただし、これに伴う問題は、ブラシ サイズが大きいと、線のストローク サイズを使用して太い線を作成するため、直線ではない各「線」の間に多くのギャップが発生することです。

もう 1 つの方法は、ここに示すように、マウスの移動時に円を描くことです。これに伴う問題は、コンピューターがマウス入力を検出するよりも速くマウスを動かすと、各円の間に隙間ができることです。

両方の問題に関するスクリーンショットを次に示します。

http://imgur.com/32DXN.jpg

MS Paint のようなブラシを、線のストロークに隙間がなく、各円の間に隙間がなく、適度に大きなブラシ サイズで実装する最良の方法は何ですか?

0 投票する
6 に答える
5004 参照

python - シンプルなカードゲームの wxPython または pygame?

私は楽しみのために Python でいくつかの単純なカード ゲームを作成して遊んでおり、ゲームにグラフィカル ユーザー インターフェイス (GUI) を追加したいと考えています。シンプルなカード ゲームの GUI を作成する場合、どのライブラリをお勧めしますか?

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

python - エンドポイントに基づく回転

私はpygameを使用して、2つの任意のポイントの間に線を引きます。また、線の進行方向に向かって外側を向く線の端に矢印を追加したいと思います。

矢印の画像を最後に貼り付けるのは簡単ですが、矢印が正しい方向を向くように回転角度を計算する方法がわかりません。

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

python - PyGameの中国語Unicodeフォント

PyGameで漢字を表示するにはどうすればよいですか?そして、この目的に使用するのに適したfree / libreフォントは何ですか?

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

python - クラス内のクラスの属性の変更をインターセプトする-Python

私はpygameとpythonをいじっていますが、クラスの属性が変更されたときに関数を呼び出せるようにしたいと思っています。私の現在の解決策は次のとおりです。

これは正常に機能し、rect値を。で変更するとdofancystuffが呼び出されますFirsclass.rect = pygame.rect.Rect(0,0,100,100)。しかし、私が言うならFirstclass.rect.bottom = 3__setattr__そして、dofancystuffは呼び出されません。

だから私の質問は、サブクラスの属性への変更をどのようにインターセプトできるかということです。

編集:また、私がこれについて間違った方法で行っている場合は、Pythonに関してはあまり知識がないことを伝えてください。