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
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