Pygame でキーボード入力を取得する
このチュートリアルでは、Pygame でキーボード入力を取得する方法を説明します。
ここに表示されるコードは、有効な Pygame ウィンドウの完全なコードではありません。 必要最小限のフレームワークに興味がある場合は、この 記事 を参照してください。
Pygame でキーボード入力を取得するには、event
ループと pygame.key.get_pressed()
の 2つの方法があります。 これらには、後で説明する重要な違いが 1つあります。
event
ループを使用して Pygame でキーボード入力を取得する
article を読んで Pygame フレームワークを取得した場合は、既に event
ループを使用しています。これは、そこでウィンドウの終了要求を処理したためです。
pygame.event.get()
メソッドによって返された配列をループします。 このフレームで発生したすべてのイベントが含まれます。
次の行で、そのタイプを確認します。 いろいろな種類がありますが、よく使われるのは≪KEYDOWN≫と≪KEYUP≫です。
以下に示すように、KEYDOWN
イベントもチェックします。 その後、キーが E かどうかを確認しました。
そうであれば、E Pressed
と表示されます。 これは、キーが押されたときではなく、キーが押されたフレームでのみ true と評価されます。
そのためには、pygame.key.get_pressed()
が必要です。 そして次の部分では、その使用法について説明します。
コードスニペット:
# Main Loop
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_e:
print("E Pressed")
pygame.key.get_pressed()
を使用して、Pygame でキーボード入力を取得する
これを使用して、現在のフレームでのキーの状態を取得します。 これは、キーが初めて押されたときだけでなく、キーが押されたときにも信号を受け取ることを意味します。
以下に、これの簡単な例を示します。 まず、pygame.key.get_pressed
メソッドを使用して、このフレームで押されたすべてのキーの配列を取得します。次に、キーが押されたかどうかを確認します。
この値は、Pygame の重要な定数の 1つを使用して取得します。 W キーが押された場合、これは W Pressed
を出力します。
コードスニペット:
keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
print("W Pressed")
完全なサンプルコード
# Imports
import sys
import pygame
# Configuration
pygame.init()
fps = 60
fpsClock = pygame.time.Clock()
width, height = 640, 480
screen = pygame.display.set_mode((width, height))
# Game loop.
while True:
screen.fill((20, 20, 20))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_e:
print("E Pressed")
keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
print("W Pressed")
pygame.display.flip()
fpsClock.tick(fps)
Hi, my name is Maxim Maeder, I am a young programming enthusiast looking to have fun coding and teaching you some things about programming.
GitHub