Pygameは、Pythonでゲームを開発するためのライブラリとして非常に人気です。2Dゲームやインタラクティブなアプリケーションの開発には欠かせないライブラリで、特にキーボード入力の検出は多くのゲームで使用される基本的な操作です。
この記事では、初心者にもわかりやすいように、Pygameでキーボード入力を検出する方法をステップバイステップで解説します。ぜひ最後まで読んでください。
Pygameのインストールと基本操作
Pygameのインストールについてはこちらから!
Pygameの基本的なコードについて分からなかったら以下の記事に戻ってみてね!
イベントループでキーボード入力を検出する方法
Pygameでは、キーボード入力をpygame.event.get()を使って検出します。このメソッドは、イベントキューにあるすべてのイベントをリストとして取得します。キーボードイベントを処理するには、KEYDOWN(キーが押されたとき)とKEYUP(キーが離されたとき)を使用します。
import pygame
# Pygameの初期化
pygame.init()
# 画面の設定
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Pygameキーボード入力検出")
# メインループ
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
print(f"キーが押されました: {pygame.key.name(event.key)}")
elif event.type == pygame.KEYUP:
print(f"キーが離されました: {pygame.key.name(event.key)}")
pygame.quit()
画面には何も出ないけど、キーを押してみると…
こんな風にどのキーを押したか離したかがわかるよ!
押しっぱなしのキー入力の扱い
ゲームでは、キーを押しっぱなしにしたときにキャラクターが移動を続けるなどの処理が必要です。pygame.key.get_pressed()メソッドを使えば、現在押されているすべてのキーの状態をリストとして取得できます。次のように使用します。
import pygame
# Pygameの初期化
pygame.init()
# 画面の設定
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Pygameキーボード入力検出")
# メインループ
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
print(f"キーが押されました: {pygame.key.name(event.key)}")
elif event.type == pygame.KEYUP:
print(f"キーが離されました: {pygame.key.name(event.key)}")
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
print("左キーが押されています")
if keys[pygame.K_RIGHT]:
print("右キーが押されています")
pygame.quit()
長押しとの区別もこれでできそうだね!
実際のコード例で学ぶ
横スクロールゲームでよくある
・上キーを押したらジャンプ
・右キーを押したら右にダッシュ
・左キーを押したら左にダッシュ
という処理を超簡易的に実装してみよう!
import pygame
# Pygameの初期化
pygame.init()
# 画面の設定
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("完全独学Python-超簡易型キャラ操作")
# メインループ
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 上キーを押されたらジャンプ
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
print("JUMP!")
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
print("ダッシュ左!")
if keys[pygame.K_RIGHT]:
print("ダッシュ右!")
pygame.quit()
まとめ
Pygameでキーボード入力を検出する方法を理解すると、キャラクター移動やアクション操作など、さまざまなゲームに応用できます。次のステップとして、複数のキー入力を同時に処理したり、キーの組み合わせで特定のアクションをトリガーするロジックを組み込むと、さらに高度なゲームが作れるようになるでしょう。
コメント