summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorTom Black <[email protected]>2016-10-09 16:27:13 -0400
committerTom Black <[email protected]>2016-10-09 16:27:13 -0400
commitfa8ceec20f04fcdfe14189aa415ad1b5f8c32728 (patch)
tree66ff45b6325f98df840441bda250583c1978e6c7 /lib
parent11ef2c4992ad87c6d73d4357970f8a3a64abedcf (diff)
downloadruby2d-fa8ceec20f04fcdfe14189aa415ad1b5f8c32728.tar.gz
ruby2d-fa8ceec20f04fcdfe14189aa415ad1b5f8c32728.zip
Add `on_controller` input block
Also add `which` to the controller callback
Diffstat (limited to 'lib')
-rw-r--r--lib/ruby2d/application.rb4
-rw-r--r--lib/ruby2d/dsl.rb4
-rw-r--r--lib/ruby2d/window.rb11
3 files changed, 16 insertions, 3 deletions
diff --git a/lib/ruby2d/application.rb b/lib/ruby2d/application.rb
index f2c74da..52b50e1 100644
--- a/lib/ruby2d/application.rb
+++ b/lib/ruby2d/application.rb
@@ -20,6 +20,10 @@ module Ruby2D::Application
@@window.on_key(&proc)
end
+ def on_controller(&proc)
+ @@window.on_controller(&proc)
+ end
+
def add(o)
@@window.add(o)
end
diff --git a/lib/ruby2d/dsl.rb b/lib/ruby2d/dsl.rb
index 5c15c30..dbc6390 100644
--- a/lib/ruby2d/dsl.rb
+++ b/lib/ruby2d/dsl.rb
@@ -17,6 +17,10 @@ module Ruby2D::DSL
Application.on_key(&proc)
end
+ def on_controller(&proc)
+ Application.on_controller(&proc)
+ end
+
def update(&proc)
Application.update(&proc)
end
diff --git a/lib/ruby2d/window.rb b/lib/ruby2d/window.rb
index 28fd019..1d47e7b 100644
--- a/lib/ruby2d/window.rb
+++ b/lib/ruby2d/window.rb
@@ -17,6 +17,7 @@ module Ruby2D
@objects = []
@keys, @keys_up, @keys_down, @controller = {}, {}, {}, {}
@on_key_proc = Proc.new {}
+ @on_controller_proc = Proc.new {}
@update_proc = Proc.new {}
end
@@ -133,9 +134,13 @@ module Ruby2D
end
end
- def controller_callback(is_axis, axis, val, is_btn, btn)
-
- # puts "is_axis: #{is_axis}, axis: #{axis}, val: #{val}, is_btn: #{is_btn}, btn: #{btn}"
+ def on_controller(&proc)
+ @on_controller_proc = proc
+ true
+ end
+
+ def controller_callback(which, is_axis, axis, val, is_btn, btn)
+ @on_controller_proc.call(which, is_axis, axis, val, is_btn, btn)
if is_axis
if axis == 0 && val == -32768