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

@ -10,11 +10,11 @@ func _init(dragon: PackedScene, viewport: Viewport, window: Window) -> void:
_dragon_template = dragon
func instantiate(position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, dragon_name: String, drag: bool) -> Node:
func instantiate(position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, drag: bool) -> Node:
if drag == false:
return _instantiate_dragon(position, hat, shirt, shoes, dragon_name, drag)
return _instantiate_dragon(position, hat, shirt, shoes, drag)
var relative_position: Vector2i = _calculate_relative_position(position)
return _instantiate_dragon(relative_position, hat, shirt, shoes, dragon_name, drag)
return _instantiate_dragon(relative_position, hat, shirt, shoes, drag)
func _calculate_window_scale() -> Vector2:
@ -29,7 +29,7 @@ func _calculate_relative_position(position: Vector2) -> Vector2i:
return Vector2i(Vector2(position) * scale)
func _instantiate_dragon(relative_position: Vector2i, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, dragon_name: String, drag: bool) -> Node:
func _instantiate_dragon(relative_position: Vector2i, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, drag: bool) -> Node:
var dragon: Dragon = _dragon_template.instantiate()
var window_position: Vector2i = DisplayServer.window_get_position()
@ -40,7 +40,6 @@ func _instantiate_dragon(relative_position: Vector2i, hat: Texture2D, shirt: Tex
else:
dragon.position = window_position + relative_position - dragon.size / 2
dragon.dress(hat, shirt, shoes)
dragon.set_dragon_name(dragon_name)
var size: float = _calculate_window_scale().y
dragon.main_window_rect = Rect2i(window_position, window_size)