summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorTom Black <[email protected]>2017-12-02 21:58:07 -0800
committerTom Black <[email protected]>2017-12-02 22:27:16 -0800
commitb13074ebe542aa25c5b3b08afed4b60e1d23e1c6 (patch)
tree6ed6ca0e0bdf74198981bf01f626c6ade21b251c /test
parent18e5a492e9f3f3ba6c69998f577f7cc0d6ea085d (diff)
downloadruby2d-b13074ebe542aa25c5b3b08afed4b60e1d23e1c6.tar.gz
ruby2d-b13074ebe542aa25c5b3b08afed4b60e1d23e1c6.zip
Use controller mappings
Diffstat (limited to 'test')
-rw-r--r--test/controller.rb204
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