Mejoras en el manejo del personaje, enemigo de pruebas

This commit is contained in:
ankdev committed 2026-10-01 16:39:07 +02:00
1 parent 1b797a3e90
commit e93efc533b
21 files changed
+774 -85

No files matched your search

+50
View File
@@ -0,0 +1,50 @@
extends CanvasLayer
## Controles táctiles provisionales para jugar en móvil.
##
## Los botones no llaman directamente al Player. En su lugar pulsan y liberan
## las mismas acciones del InputMap que ya usa el teclado. De esta forma la
## lógica de movimiento/combate sigue teniendo una única fuente de entrada:
##
## teclado -> InputMap <- controles táctiles
## |
## Player
##
## Cuando llegue el arte definitivo, esta escena puede cambiar por completo sin
## tocar player.gd mientras conserve estas cuatro acciones.
@onready var move_left_button: Button = $Controls/MoveLeft
@onready var move_right_button: Button = $Controls/MoveRight
@onready var jump_button: Button = $Controls/Jump
@onready var attack_button: Button = $Controls/Attack
func _ready() -> void:
_bind_button(move_left_button, &"move_left")
_bind_button(move_right_button, &"move_right")
_bind_button(jump_button, &"jump")
_bind_button(attack_button, &"attack")
func _exit_tree() -> void:
# Si la escena cambia mientras un dedo sigue apoyado, Godot puede no llegar
# a emitir button_up. Liberamos las acciones para no dejar una tecla virtual
# atascada al cargar la siguiente escena.
Input.action_release(&"move_left")
Input.action_release(&"move_right")
Input.action_release(&"jump")
Input.action_release(&"attack")
func _bind_button(button: Button, action: StringName) -> void:
button.button_down.connect(_press_action.bind(action))
button.button_up.connect(_release_action.bind(action))
func _press_action(action: StringName) -> void:
Input.action_press(action)
func _release_action(action: StringName) -> void:
Input.action_release(action)
@@ -0,0 +1 @@
uid://2kbajcohyem7
+122
View File
@@ -0,0 +1,122 @@
[gd_scene load_steps=4 format=3]
[ext_resource type="Script" path="res://ui/mobile_controls/mobile_controls.gd" id="1_controls"]
[sub_resource type="StyleBoxFlat" id="ButtonNormal"]
bg_color = Color(0.65, 0.04, 0.04, 0.28)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(1, 0.15, 0.15, 0.72)
corner_radius_top_left = 14
corner_radius_top_right = 14
corner_radius_bottom_right = 14
corner_radius_bottom_left = 14
[sub_resource type="StyleBoxFlat" id="ButtonPressed"]
bg_color = Color(0.95, 0.05, 0.05, 0.52)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 4
border_color = Color(1, 0.45, 0.45, 0.95)
corner_radius_top_left = 14
corner_radius_top_right = 14
corner_radius_bottom_right = 14
corner_radius_bottom_left = 14
[node name="MobileControls" type="CanvasLayer"]
layer = 100
script = ExtResource("1_controls")
[node name="Controls" type="Control" parent="."]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="MoveLeft" type="Button" parent="Controls"]
layout_mode = 0
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 34.0
offset_top = -132.0
offset_right = 134.0
offset_bottom = -32.0
grow_vertical = 0
focus_mode = 0
keep_pressed_outside = true
theme_override_colors/font_color = Color(1, 1, 1, 0.95)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_font_sizes/font_size = 42
theme_override_styles/normal = SubResource("ButtonNormal")
theme_override_styles/hover = SubResource("ButtonNormal")
theme_override_styles/pressed = SubResource("ButtonPressed")
text = "<"
[node name="MoveRight" type="Button" parent="Controls"]
layout_mode = 0
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 150.0
offset_top = -132.0
offset_right = 250.0
offset_bottom = -32.0
grow_vertical = 0
focus_mode = 0
keep_pressed_outside = true
theme_override_colors/font_color = Color(1, 1, 1, 0.95)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_font_sizes/font_size = 42
theme_override_styles/normal = SubResource("ButtonNormal")
theme_override_styles/hover = SubResource("ButtonNormal")
theme_override_styles/pressed = SubResource("ButtonPressed")
text = ">"
[node name="Jump" type="Button" parent="Controls"]
layout_mode = 0
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -264.0
offset_top = -132.0
offset_right = -154.0
offset_bottom = -32.0
grow_horizontal = 0
grow_vertical = 0
focus_mode = 0
keep_pressed_outside = true
theme_override_colors/font_color = Color(1, 1, 1, 0.95)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_font_sizes/font_size = 22
theme_override_styles/normal = SubResource("ButtonNormal")
theme_override_styles/hover = SubResource("ButtonNormal")
theme_override_styles/pressed = SubResource("ButtonPressed")
text = "JUMP"
[node name="Attack" type="Button" parent="Controls"]
layout_mode = 0
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -138.0
offset_top = -132.0
offset_right = -28.0
offset_bottom = -32.0
grow_horizontal = 0
grow_vertical = 0
focus_mode = 0
keep_pressed_outside = true
theme_override_colors/font_color = Color(1, 1, 1, 0.95)
theme_override_colors/font_pressed_color = Color(1, 1, 1, 1)
theme_override_font_sizes/font_size = 22
theme_override_styles/normal = SubResource("ButtonNormal")
theme_override_styles/hover = SubResource("ButtonNormal")
theme_override_styles/pressed = SubResource("ButtonPressed")
text = "ATK"