diff options
| author | Tom Black <[email protected]> | 2016-10-09 16:10:08 -0400 |
|---|---|---|
| committer | Tom Black <[email protected]> | 2016-10-09 16:10:08 -0400 |
| commit | 11ef2c4992ad87c6d73d4357970f8a3a64abedcf (patch) | |
| tree | 556615e412c5c45814f7cdb2c6a2d93350695924 /lib | |
| parent | 365d286e7789b1ac2e7b3a825732dd615b76aea6 (diff) | |
| download | ruby2d-11ef2c4992ad87c6d73d4357970f8a3a64abedcf.tar.gz ruby2d-11ef2c4992ad87c6d73d4357970f8a3a64abedcf.zip | |
Add `on_key` input block
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/ruby2d/application.rb | 4 | ||||
| -rw-r--r-- | lib/ruby2d/dsl.rb | 4 | ||||
| -rw-r--r-- | lib/ruby2d/window.rb | 7 |
3 files changed, 15 insertions, 0 deletions
diff --git a/lib/ruby2d/application.rb b/lib/ruby2d/application.rb index 5a91760..f2c74da 100644 --- a/lib/ruby2d/application.rb +++ b/lib/ruby2d/application.rb @@ -16,6 +16,10 @@ module Ruby2D::Application @@window.on(mouse: mouse, key: key, key_up: key_up, key_down: key_down, controller: controller, &proc) end + def on_key(&proc) + @@window.on_key(&proc) + end + def add(o) @@window.add(o) end diff --git a/lib/ruby2d/dsl.rb b/lib/ruby2d/dsl.rb index 431f83f..5c15c30 100644 --- a/lib/ruby2d/dsl.rb +++ b/lib/ruby2d/dsl.rb @@ -13,6 +13,10 @@ module Ruby2D::DSL Application.on(mouse: mouse, key: key, key_up: key_up, key_down: key_down, controller: controller, &proc) end + def on_key(&proc) + Application.on_key(&proc) + end + def update(&proc) Application.update(&proc) end diff --git a/lib/ruby2d/window.rb b/lib/ruby2d/window.rb index eddb833..28fd019 100644 --- a/lib/ruby2d/window.rb +++ b/lib/ruby2d/window.rb @@ -16,6 +16,7 @@ module Ruby2D @vsync = vsync @objects = [] @keys, @keys_up, @keys_down, @controller = {}, {}, {}, {} + @on_key_proc = Proc.new {} @update_proc = Proc.new {} end @@ -102,8 +103,14 @@ module Ruby2D end end + def on_key(&proc) + @on_key_proc = proc + true + end + def key_callback(key) key.downcase! + @on_key_proc.call(key) if @keys.has_key? key @keys[key].call end |
