見出し画像

Pythonでジョイスティックを使う

Pythonでジョイスティックを使う方法を紹介します。

1. pygame

Pythonでジョイスティックを使うには、pygameを使います。
pygameはPythonで2Dゲームを作成するためのライブラリになります。

pygame

Pythonの仮想環境(Python 3.6で試しました)で、以下のコマンドでインストールします。

$ pip install pygame

以下のコマンドでサンプル動くかでインストールを確認できます。

$ python -m pygame.examples.aliens

画像1

2. ジョイスティックの準備

USBのPC対応ゲームパッドであれば、大丈夫そうです。自分は以下を用意しました。


3. Pythonでジョイスティックを使う

Pythonでジョイスティックの状態を取得するコードは次の通りです。

import pygame
from pygame.locals import *

# ジョイスティックの初期化
pygame.joystick.init()
try:
   # ジョイスティックインスタンスの生成
   joystick = pygame.joystick.Joystick(0)
   joystick.init()
   print('ジョイスティックの名前:', joystick.get_name())
   print('ボタン数 :', joystick.get_numbuttons())
except pygame.error:
   print('ジョイスティックが接続されていません')

# pygameの初期化
pygame.init()

# 画面の生成
screen = pygame.display.set_mode((320, 320))

# ループ
active = True
while active:
   # イベントの取得
   for e in pygame.event.get():
       # 終了ボタン
       if e.type == QUIT:
           active = False

       # ジョイスティックのボタンの入力
       if e.type == pygame.locals.JOYAXISMOTION:
           print('十時キー:', joystick.get_axis(0), joystick.get_axis(1))
       elif e.type == pygame.locals.JOYBUTTONDOWN:
           print('ボタン'+str(e.button)+'を押した')
       elif e.type == pygame.locals.JOYBUTTONUP:
           print('ボタン'+str(e.button)+'を離した')

ウィンドウにフォーカスし、ジョイスティックを操作することで、ターミナルにログが出力されます。

画像2

ジョイスティックの名前: Pro Controller
ボタン数 : 14
十時キー: 0.00390625 0.00390625
十時キー: 0.00390625 0.00390625
十時キー: 0.00390625 0.00390625
十時キー: 0.00390625 0.00390625
十時キー: 0.00390625 -1.0
十時キー: 0.00390625 0.00390625
十時キー: 0.00390625 -1.0
十時キー: 0.00390625 0.00390625
ボタン2を押した
ボタン2を離した
ボタン1を押した
ボタン1を離した

ジョイスティックAPIについて詳しくは、以下が参考になります。

joystick - Pygameドキュメント 日本語訳

この記事が気に入ったらサポートをしてみませんか?