クロの制作日記

クロの制作日記

田舎の大学生がUnityとか機械学習関連の制作物をひたすらアップします。ブログで紹介したコード一覧https://github.com/kuroshum/blog_code

Python(Pygame)でコントローラの長押しをした時の処理を実現

はじめに

コントローラーとRaspberry Pi3を使ってロボットを遠隔操作をしようと試みました。

ですが、コントローラーの入力を読み込むために使用したライブラリのPygameはボタンやアナログスティックの長押しに対応していません。

アナログスティックを例にすると、Pygameはアナログスティックが傾き続けている間は入力値が変化し続けるため、検知し続けますが、限界値まで倒すと入力される値が固定されて変化しないため、検知されなくなってしまいます。

それ以外のボタンも押されたと離されたは検知しますが、押し続けるは検知されません。
とりあえず今回はアナログスティックの問題を解消するプログラムを作成しました。


コントローラのプログラムは以下のサイトのものを参考にしました。
d.hatena.ne.jp




プログラム

実際のプログラムは以下のものです

リポジトリにスター付けてくれたらルンルン気分になります。
github.com


このプログラムをパソコンにゲームパッドを接続した状態で実行すれば、新たなウインドウとその中心に緑色の〇が表示され、アナログスティックを動かすとその方向に〇も動くと思います。