diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2025-03-10 18:22:09 +0100 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2025-03-10 18:22:09 +0100 |
commit | 440020e642f539079867577435a9f8b02075699b (patch) | |
tree | 99acccfc1574a8ffc656d6f64ff934949edb1f52 /map/objects/ledge.gd |
Diffstat (limited to 'map/objects/ledge.gd')
-rw-r--r-- | map/objects/ledge.gd | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/map/objects/ledge.gd b/map/objects/ledge.gd new file mode 100644 index 0000000..755cd85 --- /dev/null +++ b/map/objects/ledge.gd @@ -0,0 +1,46 @@ +extends Area2D + + +var is_jumping := false + + +func _on_body_entered(body: Node2D) -> void: + if body is Player and not is_jumping: + print("??", is_jumping) + is_jumping = true + + var grid_position := World.local_to_map(global_position) + var target_position := World.map_to_local(grid_position + Vector2i(0, 1)) + + var shadow = body.get_node("Shadow") + var shadow_offset = Vector2(-4,5)#shadow.position + + var tween1 := create_tween().set_ease(Tween.EASE_IN_OUT).set_parallel() + tween1.tween_property(body, "position", body.position + Vector2(0, -3), 0.25) + tween1.tween_property(shadow, "position", shadow.position + Vector2(0, 3), 0.25) + await tween1.finished + + var tween = create_tween().set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_QUAD).set_parallel() + + tween.tween_property( + body, + "global_position", + target_position, + 1.0 + ) + tween.tween_property( + get_viewport().get_camera_2d(), + "global_position", + target_position, + 1.0 + ) + + tween.tween_property( + shadow, + "global_position", + target_position + shadow_offset, + 1.0 + ) + + await tween.finished + is_jumping = false |