summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
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