Compare commits

...

5 Commits

Author SHA1 Message Date
Artur David c587fe9e4f Merge branch 'main' of https://gitty.informatik.hs-mannheim.de/3002102/gae_wild_jam 2026-06-02 17:50:10 +02:00
Artur David 84629baec3 switched card hover to process-driven sine, reduced amplitude 2026-06-02 09:30:38 +02:00
Artur David 216fdc88ab slowed down card hover 2026-06-02 09:26:46 +02:00
Artur David e07519ba05 smoother card hover and perk screen exit transition 2026-06-02 09:25:16 +02:00
Artur David 5876fe992c replaced icon breathing with card hover float 2026-06-02 09:22:07 +02:00
2 changed files with 22 additions and 7 deletions

View File

@ -54,10 +54,13 @@ func select_perk(perk):
_spawn_level_up_particles(get_node("/root/Game/Witch").global_position)
_spawn_level_up_particles(get_node("/root/Game/Player").global_position)
perks.erase(perk)
for child in $HBoxContainer.get_children(): child.queue_free()
for child in $HBoxContainer.get_children():
child.animate_out()
var tween = create_tween()
tween.tween_property($ColorRect, "color:a", 0.0, 0.3)
tween.tween_property($ColorRect, "color:a", 0.0, 0.4)
await tween.finished
for child in $HBoxContainer.get_children():
child.queue_free()
func _spawn_level_up_particles(pos: Vector2) -> void:
var p = _particles_scene.instantiate()

View File

@ -5,6 +5,9 @@ var play_sound: Callable
var _recipe_panel: Control = null
var _panel_tween: Tween = null
var _hover_active: bool = false
var _hover_rest_y: float = 0.0
var _hover_phase: float = 0.0
const _PANEL_REST_Y = 18
const _FRUIT_ATLAS = preload("res://assets/16x16 Pixelart Food Icons/Pixel_Foods(ARTLİNE).png")
@ -131,22 +134,31 @@ func _on_button_down() -> void:
on_select.call()
func _process(delta: float) -> void:
if _hover_active:
_hover_phase += delta
position.y = _hover_rest_y + sin(_hover_phase * TAU / 4.0) * 3.5
func animate_in():
await get_tree().process_frame
pivot_offset = size / 2
var icon_node = $Card/Name/TextureRect
icon_node.pivot_offset = icon_node.size / 2
var pulse = create_tween().set_loops()
pulse.tween_property(icon_node, "scale", Vector2(1.12, 1.12), 0.9).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_SINE)
pulse.tween_property(icon_node, "scale", Vector2(1.0, 1.0), 0.9).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_SINE)
var start_y = global_position.y + 500
var end_y = global_position.y
global_position.y = start_y
var tween = create_tween()
tween.tween_property(self, "global_position:y", end_y, 0.3).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_QUAD)
await tween.finished
if not is_instance_valid(self):
return
_hover_rest_y = position.y
_hover_phase = randf_range(0.0, 4.0)
_hover_active = true
func animate_out():
_hover_active = false
position.y = _hover_rest_y
var start_y = global_position.y
var end_y = global_position.y - 500
global_position.y = start_y