diff options
| author | Tom Black <[email protected]> | 2017-12-02 21:58:07 -0800 |
|---|---|---|
| committer | Tom Black <[email protected]> | 2017-12-02 22:27:16 -0800 |
| commit | b13074ebe542aa25c5b3b08afed4b60e1d23e1c6 (patch) | |
| tree | 6ed6ca0e0bdf74198981bf01f626c6ade21b251c /test | |
| parent | 18e5a492e9f3f3ba6c69998f577f7cc0d6ea085d (diff) | |
| download | ruby2d-b13074ebe542aa25c5b3b08afed4b60e1d23e1c6.tar.gz ruby2d-b13074ebe542aa25c5b3b08afed4b60e1d23e1c6.zip | |
Use controller mappings
Diffstat (limited to 'test')
| -rw-r--r-- | test/controller.rb | 204 |
1 files changed, 201 insertions, 3 deletions
diff --git a/test/controller.rb b/test/controller.rb index b4de79a..5035ebb 100644 --- a/test/controller.rb +++ b/test/controller.rb @@ -1,6 +1,180 @@ require 'ruby2d' -set title: "Ruby 2D — Controller", width: 300, height: 200 +set title: "Ruby 2D — Controller", width: 600, height: 425 +set diagnostics: true + +# Controller outline image +controller = Image.new(path: 'media/controller.png') + +scale = 80 + +axis_left_x = Quad.new( + x1: 156, y1: 130, + x2: 156, y2: 130, + x3: 156, y3: 159, + x4: 156, y4: 159, + color: [0, 1, 0, 1] +) + +axis_left_y = Quad.new( + x1: 142, y1: 145, + x2: 171, y2: 145, + x3: 171, y3: 145, + x4: 142, y4: 145, + color: [0, 1, 0, 1] +) + +axis_right_x = Quad.new( + x1: 374, y1: 215, + x2: 374, y2: 215, + x3: 374, y3: 244, + x4: 374, y4: 244, + color: [0, 1, 0, 1] +) + +axis_right_y = Quad.new( + x1: 359, y1: 229, + x2: 388, y2: 229, + x3: 388, y3: 229, + x4: 359, y4: 229, + color: [0, 1, 0, 1] +) + +axis_trigger_left = Quad.new( + x1: 8, y1: 71, + x2: 42, y2: 71, + x3: 42, y3: 71, + x4: 8, y4: 71, + color: [0, 1, 0, 1] +) + +axis_trigger_right = Quad.new( + x1: 8 + 550, y1: 71, + x2: 42 + 550, y2: 71, + x3: 42 + 550, y3: 71, + x4: 8 + 550, y4: 71, + color: [0, 1, 0, 1] +) + +@btn_a = Quad.new( + x1: 426, y1: 167, + x2: 426 + 33, y2: 167, + x3: 426 + 33, y3: 167 + 33, + x4: 426, y4: 167 + 33, + color: [0, 1, 0, 0] +) + +@btn_b = Quad.new( + x1: 464, y1: 129, + x2: 464 + 33, y2: 129, + x3: 464 + 33, y3: 129 + 33, + x4: 464, y4: 129 + 33, + color: [1, 0, 0, 0] +) + +@btn_x = Quad.new( + x1: 388, y1: 128, + x2: 388 + 33, y2: 128, + x3: 388 + 33, y3: 128 + 33, + x4: 388, y4: 128 + 33, + color: [0, 0.7, 1, 0] +) + +@btn_y = Quad.new( + x1: 426, y1: 91, + x2: 426 + 33, y2: 91, + x3: 426 + 33, y3: 91 + 33, + x4: 426, y4: 91 + 33, + color: [1, 1, 0, 0] +) + +@btn_back = Quad.new( + x1: 248, y1: 133, + x2: 248 + 23, y2: 133, + x3: 248 + 23, y3: 133 + 23, + x4: 248, y4: 133 + 23, + color: [1, 0.5, 0, 0] +) + +@btn_guide = Quad.new( + x1: 281, y1: 69, + x2: 281 + 38, y2: 69, + x3: 281 + 38, y3: 69 + 38, + x4: 281, y4: 69 + 38, + color: [0.5, 1, 0.5, 0] +) + +@btn_start = Quad.new( + x1: 331, y1: 133, + x2: 331 + 23, y2: 133, + x3: 331 + 23, y3: 133 + 23, + x4: 331, y4: 133 + 23, + color: [1, 0.5, 0, 0] +) + +@btn_left_stick = Quad.new( + x1: 8, y1: 4, + x2: 8 + 34, y2: 4, + x3: 8 + 38, y3: 4 + 67, + x4: 8 - 4, y4: 4 + 67, + color: [1, 0, 0, 0] +) + +@btn_right_stick = Quad.new( + x1: 558, y1: 4, + x2: 558 + 34, y2: 4, + x3: 558 + 38, y3: 4 + 67, + x4: 558 - 4, y4: 4 + 67, + color: [1, 0, 0, 0] +) + +@btn_left_shoulder = Quad.new( + x1: 111, y1: 84, + x2: 117, y2: 64, + x3: 198, y3: 39, + x4: 225, y4: 52, + color: [0.5, 0, 1, 0] +) + +@btn_right_shoulder = Quad.new( + x1: 494, y1: 85, + x2: 484, y2: 64, + x3: 401, y3: 39, + x4: 378, y4: 51, + color: [0.5, 0, 1, 0] +) + +@btn_up = Quad.new( + x1: 216, y1: 194, + x2: 216 + 23, y2: 194, + x3: 216 + 23, y3: 194 + 28, + x4: 216, y4: 194 + 28, + color: [1, 0, 0.5, 0] +) + +@btn_down = Quad.new( + x1: 216, y1: 243, + x2: 216 + 23, y2: 243, + x3: 216 + 23, y3: 243 + 27, + x4: 216, y4: 243 + 27, + color: [1, 0, 0.5, 0] +) + +@btn_left = Quad.new( + x1: 189, y1: 221, + x2: 189 + 28, y2: 221, + x3: 189 + 28, y3: 221 + 22, + x4: 189, y4: 221 + 22, + color: [1, 0, 0.5, 0] +) + +@btn_right = Quad.new( + x1: 238, y1: 221, + x2: 238 + 28, y2: 221, + x3: 238 + 28, y3: 221 + 22, + x4: 238, y4: 221 + 22, + color: [1, 0, 0.5, 0] +) on :controller do |event| puts event @@ -8,14 +182,38 @@ end on :controller_axis do |event| puts "Axis: #{event.axis}, Value: #{event.value}" + case event.axis + when :left_x + axis_left_x.x2 = 156 + event.value * scale + axis_left_x.x3 = 156 + event.value * scale + when :left_y + axis_left_y.y1 = 145 + event.value * scale + axis_left_y.y2 = 145 + event.value * scale + when :right_x + axis_right_x.x2 = 374 + event.value * scale + axis_right_x.x3 = 374 + event.value * scale + when :right_y + axis_right_y.y1 = 229 + event.value * scale + axis_right_y.y2 = 229 + event.value * scale + when :trigger_left + axis_trigger_left.y1 = 71 - event.value * 67 + axis_trigger_left.y2 = 71 - event.value * 67 + when :trigger_right + axis_trigger_right.y1 = 71 - event.value * 67 + axis_trigger_right.y2 = 71 - event.value * 67 + end end on :controller_button_down do |event| - puts "Button down: #{event.button}" + instance_variable_get("@btn_#{event.button}").opacity = 1.0 end on :controller_button_up do |event| - puts "Button up: #{event.button}" + instance_variable_get("@btn_#{event.button}").opacity = 0 +end + +on :key_down do |event| + close if event.key == 'escape' end show |
