【Python】Pygame キーボード入力のイベント操作
前回は、マウスイベントについて説明したので、今回はキーボードについてみていきます。
shizenkarasuzon.hatenablog.com
サンプルプログラム
from pygame.locals import * import pygame import sys pygame.init() # Pygameを初期化 screen = pygame.display.set_mode((400, 330)) # 画面を作成 pygame.display.set_caption("keyboard event") # タイトルを作成 while True: screen.fill((0, 0, 0)) for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() if event.type == KEYDOWN: # キーを押したとき # ESCキーならスクリプトを終了 if event.key == K_ESCAPE: pygame.quit() sys.exit() else: print("押されたキー = " + pygame.key.name(event.key)) pygame.display.update()
実行結果
以下のような画面が表示されます。
また、画面上で(?)キーボード上のキーを何か押すと(Esc以外)、そのキーの名前が表示されます。
押されたキー = a 押されたキー = s 押されたキー = x 押されたキー = z 押されたキー = left ctrl 押されたキー = left super
解説
キーボードイベントとは、キーボードのキーが押されたり離されたりしたときに発生するイベントのことです。
キーボードイベントには以下の2種類があります。
イベント名 | 説明 |
---|---|
KEYDOWN | キーが押された |
KEYUP | キーが離された |
また、それぞれのイベントでは、keyというパラメータが存在して、その中には押されたキーの番号が格納されています。
キー番号には、以下のようなものがあります。
キー番号 | 押されたキー |
---|---|
K_x | x |
K_DELETE | Delete |
K_SPACE | スペースキー |
K_LEFT | 左矢印 |
などなどです。
その他、キー番号について知りたい方は、こちらのサイトをご覧ください。
http://westplain.sakuraweb.com/translate/pygame/Key.cgi#pygame.key.name
K_LEFT等のキー番号を示す定数はpygame.localsで定義されてます。