Browse Source

Refactor the Joypads demo

Aaron Franke 5 years ago
parent
commit
5322be1a54
3 changed files with 589 additions and 496 deletions
  1. 27 27
      misc/joypads/joypad_diagram.tscn
  2. 27 23
      misc/joypads/joypads.gd
  3. 535 446
      misc/joypads/joypads.tscn

+ 27 - 27
misc/joypads/jsdiagram.tscn → misc/joypads/joypad_diagram.tscn

@@ -3,56 +3,56 @@
 [ext_resource path="res://diagram.png" type="Texture" id=1]
 [ext_resource path="res://indicators.png" type="Texture" id=2]
 
-[node name="diagram" type="Sprite"]
+[node name="JoypadDiagram" type="Sprite"]
 position = Vector2( 368.635, 155.289 )
 scale = Vector2( 0.432859, 0.446287 )
 texture = ExtResource( 1 )
 
-[node name="buttons" type="Node2D" parent="."]
+[node name="Buttons" type="Node2D" parent="."]
 
-[node name="0" type="Sprite" parent="buttons"]
+[node name="0" type="Sprite" parent="Buttons"]
 position = Vector2( 147.73, 120.925 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 0, 0, 45, 45 )
 
-[node name="1" type="Sprite" parent="buttons"]
+[node name="1" type="Sprite" parent="Buttons"]
 position = Vector2( 185.769, 82.4874 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 0, 0, 45, 45 )
 
-[node name="2" type="Sprite" parent="buttons"]
+[node name="2" type="Sprite" parent="Buttons"]
 position = Vector2( 112.377, 82.4874 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 0, 0, 45, 45 )
 
-[node name="3" type="Sprite" parent="buttons"]
+[node name="3" type="Sprite" parent="Buttons"]
 position = Vector2( 149.073, 47.3293 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 0, 0, 45, 45 )
 
-[node name="4" type="Sprite" parent="buttons"]
+[node name="4" type="Sprite" parent="Buttons"]
 position = Vector2( -161.038, -158.037 )
 scale = Vector2( 5.3348, 3.35512 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 10, 10, 10, 10 )
 
-[node name="5" type="Sprite" parent="buttons"]
+[node name="5" type="Sprite" parent="Buttons"]
 position = Vector2( 159.362, -156.977 )
 scale = Vector2( 5.3348, 3.35512 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 10, 10, 10, 10 )
 
-[node name="6" type="Sprite" parent="buttons"]
+[node name="6" type="Sprite" parent="Buttons"]
 position = Vector2( -159.349, -221.878 )
 scale = Vector2( 1.0458, 2.16952 )
 texture = ExtResource( 2 )
@@ -60,49 +60,49 @@ flip_h = true
 region_enabled = true
 region_rect = Rect2( 0, 0, 45, 22 )
 
-[node name="7" type="Sprite" parent="buttons"]
+[node name="7" type="Sprite" parent="Buttons"]
 position = Vector2( 156.677, -220.11 )
 scale = Vector2( 1.0458, 2.16952 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 0, 0, 45, 22 )
 
-[node name="8" type="Sprite" parent="buttons"]
+[node name="8" type="Sprite" parent="Buttons"]
 position = Vector2( -67.5308, 164.422 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 0, 0, 45, 45 )
 
-[node name="9" type="Sprite" parent="buttons"]
+[node name="9" type="Sprite" parent="Buttons"]
 position = Vector2( 75.8825, 167.363 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 0, 0, 45, 45 )
 
-[node name="10" type="Sprite" parent="buttons"]
+[node name="10" type="Sprite" parent="Buttons"]
 position = Vector2( -46.6707, 52.702 )
 scale = Vector2( 0.810497, 0.57205 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 0, 0, 45, 45 )
 
-[node name="11" type="Sprite" parent="buttons"]
+[node name="11" type="Sprite" parent="Buttons"]
 position = Vector2( 56.2581, 54.4382 )
 scale = Vector2( 0.810497, 0.57205 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 0, 0, 45, 45 )
 
-[node name="12" type="Sprite" parent="buttons"]
+[node name="12" type="Sprite" parent="Buttons"]
 position = Vector2( -139.402, 46.8295 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 50, 0, 54, 14 )
 
-[node name="13" type="Sprite" parent="buttons"]
+[node name="13" type="Sprite" parent="Buttons"]
 position = Vector2( -139.838, 115.789 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
@@ -110,14 +110,14 @@ flip_v = true
 region_enabled = true
 region_rect = Rect2( 50, 0, 54, 14 )
 
-[node name="14" type="Sprite" parent="buttons"]
+[node name="14" type="Sprite" parent="Buttons"]
 position = Vector2( -172.262, 81.8793 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 50, 0, 14, 54 )
 
-[node name="15" type="Sprite" parent="buttons"]
+[node name="15" type="Sprite" parent="Buttons"]
 position = Vector2( -105.085, 81.0326 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
@@ -125,16 +125,16 @@ flip_h = true
 region_enabled = true
 region_rect = Rect2( 50, 0, 14, 54 )
 
-[node name="axes" type="Node2D" parent="."]
+[node name="Axes" type="Node2D" parent="."]
 
-[node name="0-" type="Sprite" parent="axes"]
+[node name="0-" type="Sprite" parent="Axes"]
 position = Vector2( -94.4295, 164.932 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 50, 0, 14, 54 )
 
-[node name="0+" type="Sprite" parent="axes"]
+[node name="0+" type="Sprite" parent="Axes"]
 position = Vector2( -40.3475, 164.509 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
@@ -142,14 +142,14 @@ flip_h = true
 region_enabled = true
 region_rect = Rect2( 50, 0, 14, 54 )
 
-[node name="1-" type="Sprite" parent="axes"]
+[node name="1-" type="Sprite" parent="Axes"]
 position = Vector2( -67.6802, 137.926 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 50, 0, 54, 14 )
 
-[node name="1+" type="Sprite" parent="axes"]
+[node name="1+" type="Sprite" parent="Axes"]
 position = Vector2( -67.4618, 192.915 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
@@ -157,14 +157,14 @@ flip_v = true
 region_enabled = true
 region_rect = Rect2( 50, 0, 54, 14 )
 
-[node name="2-" type="Sprite" parent="axes"]
+[node name="2-" type="Sprite" parent="Axes"]
 position = Vector2( 48.8152, 167.145 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 50, 0, 14, 54 )
 
-[node name="2+" type="Sprite" parent="axes"]
+[node name="2+" type="Sprite" parent="Axes"]
 position = Vector2( 102.899, 167.857 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
@@ -172,14 +172,14 @@ flip_h = true
 region_enabled = true
 region_rect = Rect2( 50, 0, 14, 54 )
 
-[node name="3-" type="Sprite" parent="axes"]
+[node name="3-" type="Sprite" parent="Axes"]
 position = Vector2( 76.6557, 140.986 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )
 region_enabled = true
 region_rect = Rect2( 50, 0, 54, 14 )
 
-[node name="3+" type="Sprite" parent="axes"]
+[node name="3+" type="Sprite" parent="Axes"]
 position = Vector2( 76.0009, 195.339 )
 scale = Vector2( 0.9, 0.9 )
 texture = ExtResource( 2 )

+ 27 - 23
misc/joypads/joypads.gd

@@ -13,60 +13,64 @@ var joy_num
 var cur_joy = -1
 var axis_value
 
+onready var axes = $Axes
+onready var button_grid = $Buttons/ButtonGrid
+onready var joypad_axes = $JoypadDiagram/Axes
+onready var joypad_buttons = $JoypadDiagram/Buttons
+onready var joypad_name = $DeviceInfo/JoyName
+onready var joypad_number = $DeviceInfo/JoyNumber
+
 func _ready():
 	set_physics_process(true)
 	Input.connect("joy_connection_changed", self, "_on_joy_connection_changed")
 
 
-func _physics_process(_delta):
+func _process(_delta):
 	# Get the joypad device number from the spinbox.
-	joy_num = get_node("device_info/joy_num").get_value()
+	joy_num = joypad_number.get_value()
 
 	# Display the name of the joypad if we haven't already.
 	if joy_num != cur_joy:
 		cur_joy = joy_num
-		get_node("device_info/joy_name").set_text(Input.get_joy_name(joy_num))
+		joypad_name.set_text(Input.get_joy_name(joy_num))
 
 	# Loop through the axes and show their current values.
-	for axis in range(JOY_AXIS_0, JOY_AXIS_MAX):
+	for axis in range(JOY_AXIS_MAX):
 		axis_value = Input.get_joy_axis(joy_num, axis)
-		get_node("axes/axis_prog" + str(axis)).set_value(100 * axis_value)
-		get_node("axes/axis_val" + str(axis)).set_text(str(axis_value))
+		axes.get_node("Axis" + str(axis) + "/ProgressBar").set_value(100 * axis_value)
+		axes.get_node("Axis" + str(axis) + "/ProgressBar/Value").set_text(str(axis_value))
 		# Show joypad direction indicators
 		if axis <= JOY_ANALOG_RY:
 			if abs(axis_value) < DEADZONE:
-				get_node("diagram/axes/" + str(axis) + "+").hide()
-				get_node("diagram/axes/" + str(axis) + "-").hide()
+				joypad_axes.get_node(str(axis) + "+").hide()
+				joypad_axes.get_node(str(axis) + "-").hide()
 			elif axis_value > 0:
-				get_node("diagram/axes/" + str(axis) + "+").show()
-				get_node("diagram/axes/" + str(axis) + "-").hide()
+				joypad_axes.get_node(str(axis) + "+").show()
+				joypad_axes.get_node(str(axis) + "-").hide()
 			else:
-				get_node("diagram/axes/" + str(axis) + "+").hide()
-				get_node("diagram/axes/" + str(axis) + "-").show()
+				joypad_axes.get_node(str(axis) + "+").hide()
+				joypad_axes.get_node(str(axis) + "-").show()
 
 	# Loop through the buttons and highlight the ones that are pressed.
 	for btn in range(JOY_BUTTON_0, JOY_BUTTON_MAX):
 		if Input.is_joy_button_pressed(joy_num, btn):
-			get_node("buttons/btn" + str(btn)).add_color_override("font_color", Color.white)
-			get_node("diagram/buttons/" + str(btn)).show()
+			button_grid.get_node(str(btn)).add_color_override("font_color", Color.white)
+			joypad_buttons.get_node(str(btn)).show()
 		else:
-			get_node("buttons/btn" + str(btn)).add_color_override("font_color", Color(0.2, 0.1, 0.3, 1))
-			get_node("diagram/buttons/" + str(btn)).hide()
+			button_grid.get_node(str(btn)).add_color_override("font_color", Color(0.2, 0.1, 0.3, 1))
+			joypad_buttons.get_node(str(btn)).hide()
 
 
 # Called whenever a joypad has been connected or disconnected.
 func _on_joy_connection_changed(device_id, connected):
 	if device_id == cur_joy:
-		if connected:
-			get_node("device_info/joy_name").set_text(Input.get_joy_name(device_id))
-		else:
-			get_node("device_info/joy_name").set_text("")
+		joypad_name.set_text(Input.get_joy_name(device_id) if connected else "")
 
 
 func _on_start_vibration_pressed():
-	var weak = get_node("vibration/vibration_weak_value").get_value()
-	var strong = get_node("vibration/vibration_strong_value").get_value()
-	var duration = get_node("vibration/vibration_duration_value").get_value()
+	var weak = $Vibration/Weak/Value.get_value()
+	var strong = $Vibration/Strong/Value.get_value()
+	var duration = $Vibration/Duration/Value.get_value()
 	Input.start_joy_vibration(cur_joy, weak, strong, duration)
 
 

File diff suppressed because it is too large
+ 535 - 446
misc/joypads/joypads.tscn


Some files were not shown because too many files changed in this diff