gosu_extensions 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.4
1
+ 0.2.5
@@ -276,8 +276,8 @@ class GameWindow < Gosu::Window
276
276
  # Gosu::Button::KbS => :reverse,
277
277
  # Gosu::Button::Kb1 => :revive
278
278
  #
279
- def add_controls_for object
280
- @controls << Control.new(self, object)
279
+ def add_controls_for object, mapping = nil
280
+ @controls << Control.new(self, object, mapping)
281
281
  end
282
282
 
283
283
  # Main loop methods.
@@ -26,10 +26,20 @@ module Controllable extend Trait
26
26
  attr_accessor :controls_mapping
27
27
  InitializerHooks.register self do
28
28
  self.controls_mapping = mapping
29
- self.window.add_controls_for self
29
+ self.controls
30
30
  end
31
31
  end
32
32
 
33
33
  end
34
34
 
35
+ # You can add controls dynamically.
36
+ #
37
+ # Provide a hash of mappings:
38
+ # player_one.controls Gosu::Button::KbA => Turnable::Left,
39
+ # Gosu::Button::KbD => Turnable::Right
40
+ #
41
+ def controls mapping = nil
42
+ self.window.add_controls_for self, mapping
43
+ end
44
+
35
45
  end
@@ -6,6 +6,19 @@ describe Controllable do
6
6
  @window = stub :window
7
7
  end
8
8
 
9
+ describe "controls" do
10
+ before(:each) do
11
+ @controllable = test_class_with(Controllable).new @window
12
+ end
13
+ it "should return the mapping" do
14
+ mapping = stub :mapping
15
+
16
+ @window.should_receive(:add_controls_for).once.with @controllable, mapping
17
+
18
+ @controllable.controls mapping
19
+ end
20
+ end
21
+
9
22
  describe "add_controls_for" do
10
23
  before(:each) do
11
24
  @controllable_class = test_class_with Controllable do
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 4
9
- version: 0.2.4
8
+ - 5
9
+ version: 0.2.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - Florian Hanke