PyGame の mousebuttondown イベント

Fariba Laiq 2023年1月30日
  1. Python 2.7 に PyGame をインストールする
  2. Python 3.5 に PyGame をインストールする
  3. PyGame で MOUSEBUTTONDOWN イベントを検出する
PyGame の mousebuttondown イベント

PyGame は、その名前が示すように、Python のオープンソースのマルチメディアライブラリであり、主にグラフィック、サウンド、ビジュアルなどを含むビデオゲームを作成するために使用されます。最近、ゲームプログラミングは非常に成功しています。

これは、単一のコードベースで複数のプラットフォームで動作するクロスプラットフォームライブラリです。このライブラリには、グラフィックとサウンドのモジュールが多数含まれています。サウンドやグラフィックがないとゲームは無意味です。

このチュートリアルでは、PyGame を使用して MOUSEBUTTONDOWN イベントを検出し、それに応じてアクションをトリガーする方法を示します。

Python 2.7 に PyGame をインストールする

このライブラリを使用するには、最初にインストールする必要があります。Python 2.7 バージョンを実行している場合は、次のコマンドを使用して PyGame をインストールする必要があります。

None

Python 3.5 に PyGame をインストールする

Python バージョン 3.5 を実行している場合は、次のコマンドを使用する必要があります。

#Python 3.x
pip3 install pygame

PyGame で MOUSEBUTTONDOWN イベントを検出する

どのゲームでも、プレイヤーからの入力を受け取り、アクションを実行することがゲームの主要部分です。MOUSEBUTTONDOWN イベントは、クリックしてからどれだけの時間押し続けたかに関係なく、マウスボタンを左または右のいずれかでクリックすると発生します。

次のコードでは、ゲームウィンドウを設定し、ウィンドウの長さと高さをピクセル単位で定義しました。イベントをキャプチャするために、メイン​​ループ(while ループ)とイベントループ(for ループ)を作成しました。

for ループでは、if 条件を使用してイベントのタイプをチェックしました。MOUSEBUTTONDOWN イベントがトリガーされると、メッセージに MOUSEBUTTONDOWN event occurred と表示されます。

ユーザーがゲームウィンドウの X ボタンを押してゲームを終了すると、QUIT イベントがトリガーされ、それに応じてゲームが終了し、ウィンドウが終了します。ここでは、PyGame ウィンドウでマウスボタンを 1 回押しました。

サンプルコード:

# Python 3.x
import pygame
import sys

pygame.init()
display = pygame.display.set_mode((500, 500))
while True:
    for event in pygame.event.get():
        if event.type == pygame.MOUSEBUTTONDOWN:
            print("MOUSEBUTTONDOWN event occured")
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

出力:

#Python 3.x
MOUSEBUTTONDOWN event occured

左または右のどちらのマウスボタンが押されているかを確認したい場合は、pygame.mouse.get_pressed() メソッドによって返される値を確認できます。このメソッドでは、マウスボタンごとに 1つずつ、合計 3つの値が返されます。

ここでは、戻り値をリストに保存しています。各マウスボタンには、左マウスボタン、中マウスボタン、右マウスボタン、マウスホイールを上に、マウスホイールを下にそれぞれ 1、2、3、4、5 の値が関連付けられています。

次のコードでは、どのマウスボタンがクリックされたかを確認し、それに応じてメッセージを出力しました。マウスの左ボタンと右ボタンを押しました。

サンプルコード:

# Python 3.x
import pygame
import sys

pygame.init()
display = pygame.display.set_mode((500, 500))
while True:
    for event in pygame.event.get():
        if event.type == pygame.MOUSEBUTTONDOWN:
            mouse_presses = pygame.mouse.get_pressed()
            if mouse_presses[0]:
                print("Left mouse button pressed")
            if mouse_presses[2]:
                print("Right mouse button pressed")
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

出力:

#Python 3.x
Left mouse button pressed
Right mouse button pressed
著者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

関連記事 - Pygame Function