diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2025-11-28 16:12:51 +0200 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2025-11-28 16:12:51 +0200 |
| commit | 2d46aa29b8514a6bce39baeae6e85e89fb5e20f7 (patch) | |
| tree | 28eebc633a7ecd938eda2a73c96d50650e311e74 | |
| parent | b140b2107c23b9eb67afe29d3186f99ad67c0201 (diff) | |
Snap to horiz if above hook
| -rw-r--r-- | player.gd | 10 | ||||
| -rw-r--r-- | room_test1.tscn | 4 |
2 files changed, 10 insertions, 4 deletions
@@ -124,8 +124,14 @@ func set_movement_hanging(target: Node2D, hang_dist: float): hanging_t = 0 hanging_L = hang_dist hanging_target = target - var theta0_sign = sign(global_position.x - target.global_position.x) - hanging_theta0 = deg_to_rad(theta0_sign * 30) + + var hyp = target.global_position - global_position + # if player is above the hook, we need to snap to horizontal + if hyp.y > 0: hyp.y = 0 + + hanging_theta0 = atan2(-hyp.y, hyp.x) - PI/2 + if hanging_theta0 < -PI: hanging_theta0 += 2*PI + print_debug("hyp: ", hyp, ", hanging_theta0: ", hanging_theta0) hanging_line2D = Line2D.new() hanging_line2D.width = 2 diff --git a/room_test1.tscn b/room_test1.tscn index d47e98c..5502b78 100644 --- a/room_test1.tscn +++ b/room_test1.tscn @@ -68,14 +68,14 @@ scale = Vector2(1.5, 1.5) scroll_scale = Vector2(1.3, 1) [node name="TileMapLayer" type="TileMapLayer" parent="FgParallax"] -tile_map_data = PackedByteArray("AAAFAPv/AQATAAAAAAAFAPz/AQATAAAAAAAFAP3/AQATAAAAAAAFAP7/AQATAAAAAAAFAP//AQATAAAAAAAFAAAAAQATAAAAAAAFAAEAAQATAAAAAAAFAAIAAQATAAEAAAAKAAoAAQAPAAEAAAAKAAkAAQAPAAEAAAAKAAgAAQAPAAEAAAAKAAcAAQAPAAEAAAAKAAYAAQAPAAEAAAAKAAUAAQAPAAEAAAAKAAQAAQAPAAEAAAAKAAMAAQAPAAAAAAAJAPv/AQATAAAAAAAJAPz/AQATAAAAAAAJAP3/AQATAAAAAAAJAP7/AQATAAAAAAAJAP//AQATAAAAAAAJAAAAAQAOAAAAAAA=") +tile_map_data = PackedByteArray("AAAFAPv/AQATAAAAAAAFAPz/AQATAAAAAAAFAP3/AQATAAAAAAAFAP7/AQATAAAAAAAFAP//AQATAAAAAAAFAAAAAQATAAAAAAAFAAEAAQATAAAAAAAFAAIAAQATAAEAAAAKAAoAAQAPAAEAAAAKAAkAAQAPAAEAAAAKAAgAAQAPAAEAAAAKAAcAAQAPAAEAAAAKAAYAAQAPAAEAAAAKAAUAAQAPAAEAAAAKAAQAAQAPAAEAAAAKAAMAAQAPAAAAAAAQAPv/AQATAAAAAAAQAPz/AQAOAAAAAAAQAP3/AQATAAAAAAAQAP7/AQATAAAAAAAQAP//AQATAAAAAAAQAAAAAQAOAAAAAAAQAPr/AQATAAAAAAAQAPn/AQATAAAAAAAQAPj/AQATAAAAAAA=") tile_set = ExtResource("7_qglt1") [node name="Path2D" type="Path2D" parent="."] curve = SubResource("Curve2D_m3rqw") [node name="HookHanging" type="Sprite2D" parent="." groups=["hook_hanging"]] -position = Vector2(226, -4) +position = Vector2(226, 7) texture = ExtResource("6_ubxha") script = ExtResource("7_mrrx3") hang_distance = 50.0 |
