参考にしたのは、
Pablotron: Joystick-Rubyで落としてきたtarボールに入っていたサンプルコードのxo.rb
require 'opengl' require 'glut' require 'joystick' INTERVAL = 50 # 中略 $joy = Joystick::Device::open "/dev/input/js0" # 環境に応じて書き換えてください。 $foo = 0.0 # ジョイスティックからの入力を反映させたい変数。 timer_func = Proc.new{ foo_diff = 0 while $joy.pending? ev = $joy.next_event case ev.type when Joystick::Event::AXIS case ev.num when 0 foo_diff = ev.value/1000.0 #AXISの値は-32767から32767 end when Joystick::Event::BUTTON case ev.num when 0 puts ev.value #=> ボタンが押された時: 1, ボタンが離された時: 0 # ボタンに反応させたい時はここに具体的な処理を書いてください。 end end end $foo += foo_diff } # 中略 GLUT.TimerFunc(INTERVAL, timer_func, 0) # 後略joystickからの入力値はバッファにためられるので、ただ一定時間ごとに値を取得してOpenGLの描画に反映させてもうまく動きません。
そこで、毎回バッファをクリアして最新の値を取得してするようにしています。
joystickの入力をトリガにするという手もありますが、今回はこれで。
0 件のコメント:
コメントを投稿