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

+29
View File
@@ -0,0 +1,29 @@
extends CanvasLayer
## Minimal player HUD.
##
## This is a CanvasLayer on purpose: its coordinates belong to the camera
## viewport, not to the level. Therefore (18, 18) always means "18 pixels from
## the top-left corner currently visible by the camera", even while the player
## and Camera2D move through the world.
@onready var health_bar: ProgressBar = $HUD/HealthBar
@onready var health_label: Label = $HUD/HealthBar/HealthLabel
func _ready() -> void:
var player: Node = get_parent()
if player == null or not player.has_signal(&"health_changed"):
push_error("PlayerHealthHUD must be a child of a Player with health_changed signal.")
return
# Child _ready() runs before Player._ready(). We connect here first and the
# Player will emit its initial health value a moment later during its _ready().
player.connect(&"health_changed", _on_health_changed)
func _on_health_changed(current_health: int, max_health: int) -> void:
health_bar.max_value = float(max_health)
health_bar.value = float(current_health)
health_label.text = "HP %d / %d" % [current_health, max_health]
+1
View File
@@ -0,0 +1 @@
uid://djbmxa3ubj4yk
+65
View File
@@ -0,0 +1,65 @@
[gd_scene load_steps=4 format=3]
[ext_resource type="Script" path="res://ui/hud/player_health_hud.gd" id="1_hud"]
[sub_resource type="StyleBoxFlat" id="HealthBackground"]
bg_color = Color(0.08, 0.08, 0.09, 0.82)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.95, 0.95, 0.95, 0.75)
corner_radius_top_left = 7
corner_radius_top_right = 7
corner_radius_bottom_right = 7
corner_radius_bottom_left = 7
[sub_resource type="StyleBoxFlat" id="HealthFill"]
bg_color = Color(0.72, 0.06, 0.06, 0.92)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[node name="PlayerHealthHUD" type="CanvasLayer"]
layer = 90
script = ExtResource("1_hud")
[node name="HUD" 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="HealthBar" type="ProgressBar" parent="HUD"]
layout_mode = 0
offset_left = 18.0
offset_top = 18.0
offset_right = 278.0
offset_bottom = 58.0
mouse_filter = 2
theme_override_styles/background = SubResource("HealthBackground")
theme_override_styles/fill = SubResource("HealthFill")
max_value = 5.0
value = 5.0
show_percentage = false
[node name="HealthLabel" type="Label" parent="HUD/HealthBar"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.9)
theme_override_constants/shadow_offset_x = 1
theme_override_constants/shadow_offset_y = 1
theme_override_font_sizes/font_size = 18
text = "HP 5 / 5"
horizontal_alignment = 1
vertical_alignment = 1