mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-04 06:09:46 +03:00
Refactor the Joypads demo
This commit is contained in:
@@ -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 )
|
||||
@@ -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
Load Diff
Reference in New Issue
Block a user