Skip to content

Latest commit

 

History

History
58 lines (41 loc) · 1.37 KB

README.md

File metadata and controls

58 lines (41 loc) · 1.37 KB

jBuzzr

A minimalist JRuby module for using USB Buzz!™ controllers (the non-wireless flavour).

With cross-platform support thanks to "javahidapi".

You will need Java and JRuby obviously.

Register for keypress events, switch on and off the buzzer lights and create awesome games! Here is how:

require 'jbuzzr'

buzzer = JBuzzr.devices.values.first

p buzzer.lights.status
# => [false, false, false, false]

# let there be light
p buzzer.lights.update true, true, true, true
# => [true, true, true, true]

sleep 2

# ...except for player 1
p buzzer.lights.update false, nil, nil, nil
# => [false, true, true, true]

sleep 2

# ok, enough goofing around
buzzer.lights.update false, false, false, false

# now let's couple the lights to buzzer events 
buzzer.status.listeners << Proc.new do |event|
  if event[:button] == :buzzer
    light_command = [nil, nil, nil, nil]
    light_command[event[:controller]-1] = (event[:action] == :pressed)
    buzzer.lights.update *light_command
  end
end

# now let's prepare our main loop
looping = true

# let's also get debug output and add exit_on_yellow_button 
buzzer.status.listeners << Proc.new do |event|
  p event
  looping = !(event[:button] == :yellow)
end

while looping do
  sleep 1
end

Distributed under the "New BSD" license - because it's not the GPL and it is offered by javahidapi, too.