pythonでpygameライブラリを使ってゲームパッドを使えるようにします
環境
Windows10
python v3.9
pygame v2.1.2
ゲームパッドの状態
pygameでのゲームパッドのイベントは次のように割り当たっています
プログラムの説明
ゲームパッドの初期化
pygame.joystick.init()
joy = pygame.joystick.Joystick(0)
ゲームパッドの状態を入れるClassを作っておきます
class JoyStatus:
def __init__(self):
self.axLx = 0
self.axLy = 0
self.axRx = 0
self.axRy = 0
self.hatL = 0
self.hatR = 0
self.hatU = 0
self.hatD = 0
self.btn = [0,0,0,0,0,0,0,0,0,0,0,0]
JStat = JoyStatus()
ゲームパッドの状態をJStatにセットします
スティックのアナログ値
JStat.axLx = joy.get_axis(0)
JStat.axLy = joy.get_axis(1)
JStat.axRx = joy.get_axis(2)
JStat.axRy = joy.get_axis(3)
十字キーの値
if hat_input[0] < 0:
JStat.hatL = 0; JStat.hatR = 1
elif hat_input[0] > 0:
JStat.hatL = 1; JStat.hatR = 0
else:
JStat.hatL = 1; JStat.hatR = 1
if hat_input[1] < 0:
JStat.hatD = 0; JStat.hatU = 1
elif hat_input[1] > 0:
JStat.hatD = 1; JStat.hatU = 0
else:
JStat.hatD = 1; JStat.hatU = 1
ボタンの状態
for i in range(12):
if joy.get_button(i) == 1:
JStat.btn[i] = 0
else:
JStat.btn[i] = 1
ウィンドウの初期化
pygame.init()
screen = pygame.display.set_mode((350, 250))
pygame.display.set_caption('JOYSTICK')
pygame.display.flip()
ウィンドウにお絵描き
円: pygame.draw.circle
矩形: pygame.draw.rect