ゼロから始めるPygame!Pygameでキーボード入力を検出する方法

ゲーム

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でキーボード入力を検出する方法を理解すると、キャラクター移動やアクション操作など、さまざまなゲームに応用できます。次のステップとして、複数のキー入力を同時に処理したり、キーの組み合わせで特定のアクションをトリガーするロジックを組み込むと、さらに高度なゲームが作れるようになるでしょう。

コメント

タイトルとURLをコピーしました