2

私は PyGame が初めてで、助けが必要です!
私は Python 言語の基本的な理解があると言って始めましょう。最近、PyGame の使用方法を学び始めましたが、それは私にとって新しいことでした。ただし、PyGame のコードを作成しようとすると、かなり行き詰まります。私は多くのチュートリアルを読んだり見たりしましたが、必要な方法で私を助けてくれるものはありませんでした.

私の問題は、「こんにちは」などの単語が書かれたボックスを画面に表示しようとしていることです。そのボタンをクリックすると、hello が表示されます。

これが私の計画です:

  • ペインという名前のクラスを作成します
  • そのクラスのプロパティは次のようなものになります: xpos、ypos、text、width height
  • そのクラスのメソッドは次のようなものになります: add(textToDisplay), delete(textToDisplay) - (delete 関数は現在それほど重要ではありません), displayPane()

可能であれば、これが実際にpythonとpygame /ソートのヒントを使用して実行できるかどうかを教えてください. XD)? それがどの言語でない場合、どの言語で行うことをお勧めしますか?

4

1 に答える 1

3

を見てみましょう:

http://pygame.org/docs/ref/mouse.html#pygame.mouse.get_pos http://pygame.org/docs/ref/rect.html#pygame.Rect.collidepoint http://pygame.org/ docs/ref/draw.html#pygame.draw.rect http://pygame.org/docs/ref/font.html#pygame.font.SysFont

1 つの形状のみを扱っている場合、私の提案は手続き型のアプローチです。

  • pygame.draw.rect点に長方形を描くために使用します。
  • 関数を使用して、マウス クリックとその位置をキャプチャします。
  • マウス クリックを四角形の位置と衝突させます (オブジェクトが複数ある場合は、オブジェクトのリストを使用します)。
  • 画面にテキストを描画する関数を作成し、マウス クリックを長方形に衝突させる関数に関連付けます。

それ以外の場合は、オブジェクト指向のアプローチを採用し、pygame.sprite.Sprite各シェイプにクラスを使用するか、特別なニーズがある場合はカスタム クラスを使用します。もちろん、クリックキャプチャと衝突の部分はまだ手続き型です。

私が取り組んでいるプロジェクトを、あなたが望むものだと思うことを実行するように調整しました。

ここに画像の説明を入力

カーソルは実際には見えませんが、マウスの中ボタンでクリックして円を作成し、メイン ボタンでテキストを表示しています。

ソース: http://pastebin.com/jycEFAtX

注: 円を扱っていたので長方形ではなく円ですが、簡単に変更できるはずです。私が持っていたものを適応させて、すべてを単一のファイルにまとめただけなので、すべてが混乱しています(おそらく別のファイルに分けたほうがよいでしょう)。やりたいことを実行する方法を理解するためだけに使用してください。

に設定することでテキストを削除できobj.textますNone。たとえば、 の場合event.button == SECONDARY_BUTTON、円の上でマウスの副ボタンをクリックしてテキストを削除できます。

PS:マウスの位置でオブジェクトを衝突させる関数があることに注意してください (これは、私が作業している作業に必要なためです) が、それは必要ありません。上記のように、pygame.Rectとを使用できます。pygame.Rect.collidepoint

于 2013-09-30T03:21:51.717 に答える