ホームページ >バックエンド開発 >Python チュートリアル >Pygame でスプライト上のマウス クリックを検出するにはどうすればよいですか?
Pygame のマウス クリック検出
Pygame では、スプライト上のマウス クリックを検出するには、メイン ループ中に手動で検査する必要があります。この機能を実装する方法は次のとおりです:
メイン ループ アプローチ:
コード例:
while ...: ev = pygame.event.get() for event in ev: if event.type == pygame.MOUSEBUTTONUP: pos = pygame.mouse.get_pos() clicked_sprites = [s for s in sprites if s.rect.collidepoint(pos)] # Perform action on clicked sprites
注: Pygame は、このシナリオ用のイベント駆動型プログラミングを提供しません。
代替案アプローチ:
あまり最適ではありませんが、マウス カーソルの位置と押されたキーの状態を確認することもできます。ただし、この方法では、連続印刷を防ぐために追加のフラグ処理が必要です。
handled = False while ...: if pygame.mouse.get_pressed()[0] and mysprite.rect.collidepoint(pygame.mouse.get_pos()) and not handled: print("You have opened a chest!") handled = pygame.mouse.get_pressed()[0]
Sprite Class Method:
また、カスタム MySprite クラス内で次のメソッドを定義することもできます。マウスのクリックを確認します:
class MySprite(Sprite): def is_clicked(self): return pygame.mouse.get_pressed()[0] and self.rect.collidepoint(pygame.mouse.get_pos())
以上がPygame でスプライト上のマウス クリックを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。