feat: improved dragon walking behaviour

This commit is contained in:
Gerard Gascón 2025-04-10 22:52:28 +02:00
parent b4594bdd43
commit d8419cb9a4
8 changed files with 150 additions and 66 deletions

View file

@ -8,7 +8,7 @@ class_name DragonEntity
@export var min_exit_time: float
@export var max_exit_time: float
signal on_pick(dragon_id: int, position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, dragon_name: String)
signal on_pick(dragon_id: int, position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D)
signal on_quit(dragon_id: int)
var rng: RandomNumberGenerator = RandomNumberGenerator.new()
@ -43,13 +43,9 @@ func _input_event(viewport, event, shape_idx) -> void:
if event is InputEventMouseButton \
and event.button_index == MOUSE_BUTTON_LEFT \
and event.is_pressed():
on_pick.emit(id, position + $CollisionShape2D.position, dragon.hat.texture, dragon.shirt.texture, dragon.shoes.texture, dragon.name_label.text)
on_pick.emit(id, position + $CollisionShape2D.position, dragon.hat.texture, dragon.shirt.texture, dragon.shoes.texture)
queue_free()
func dress(hat: Texture2D, shirt: Texture2D, shoes: Texture2D):
dragon.dress(hat, shirt, shoes)
func set_dragon_name(dragon_name: String):
dragon.set_dragon_name(dragon_name)

View file

@ -5,11 +5,6 @@ class_name DragonSprite
@export var hat: Sprite2D
@export var shirt: Sprite2D
@export var shoes: Sprite2D
@export var name_label: Label
func _ready() -> void:
name_label.hide()
func dress(hat: Texture2D, shirt: Texture2D, shoes: Texture2D):
@ -18,13 +13,9 @@ func dress(hat: Texture2D, shirt: Texture2D, shoes: Texture2D):
self.shoes.texture = shoes
func set_dragon_name(dragon_name: String):
name_label.text = dragon_name
func walk_left():
$Sprite.scale.x = 1
func _on_area_2d_mouse_entered() -> void:
name_label.show()
func _on_area_2d_mouse_exited() -> void:
name_label.hide()
func walk_right():
$Sprite.scale.x = -1

View file

@ -9,12 +9,11 @@
[sub_resource type="RectangleShape2D" id="RectangleShape2D_oaoux"]
size = Vector2(76, 88)
[node name="Dragon" type="Node2D" node_paths=PackedStringArray("hat", "shirt", "shoes", "name_label")]
[node name="Dragon" type="Node2D" node_paths=PackedStringArray("hat", "shirt", "shoes")]
script = ExtResource("1_oaoux")
hat = NodePath("Sprite/Hat")
shirt = NodePath("Sprite/Shirt")
shoes = NodePath("Sprite/Shoes")
name_label = NodePath("Label")
[node name="Area2D" type="Area2D" parent="."]
@ -35,16 +34,5 @@ texture = ExtResource("4_oaoux")
[node name="Shoes" type="Sprite2D" parent="Sprite"]
texture = ExtResource("5_stf6f")
[node name="Label" type="Label" parent="."]
offset_left = -10.0
offset_top = 78.0
offset_right = 86.0
offset_bottom = 101.0
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 5
text = "AAAAAAAA"
horizontal_alignment = 1
[connection signal="mouse_entered" from="Area2D" to="." method="_on_area_2d_mouse_entered"]
[connection signal="mouse_exited" from="Area2D" to="." method="_on_area_2d_mouse_exited"]