钩爪抓住下侧直接启动矿车逻辑
This commit is contained in:
parent
876d08c4df
commit
0f8dcdd4b5
|
|
@ -5,11 +5,11 @@ func _ready() -> void:
|
||||||
#$L1_S1.switch_act_by_id(1)
|
#$L1_S1.switch_act_by_id(1)
|
||||||
#$L1_S2.switch_act_by_id(1)
|
#$L1_S2.switch_act_by_id(1)
|
||||||
#$L1_S3.switch_act_by_id(1)
|
#$L1_S3.switch_act_by_id(1)
|
||||||
#$L1_S4.switch_act_by_id(1)
|
$L1_S4.switch_act_by_id(1)
|
||||||
#$L1_S5.switch_act_by_id(1)
|
#$L1_S5.switch_act_by_id(1)
|
||||||
#$L1_S6.switch_act_by_id(1)
|
#$L1_S6.switch_act_by_id(1)
|
||||||
#$L1_S7.switch_act_by_id(1)
|
#$L1_S7.switch_act_by_id(1)
|
||||||
$L1_S8.switch_act_by_id(1)
|
#$L1_S8.switch_act_by_id(1)
|
||||||
#$L1_S9.switch_act_by_id(1)
|
#$L1_S9.switch_act_by_id(1)
|
||||||
await get_tree().process_frame
|
await get_tree().process_frame
|
||||||
get_tree().call_group(&"PLAYER_RESPAWN",&"respawn_avatar")
|
get_tree().call_group(&"PLAYER_RESPAWN",&"respawn_avatar")
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,49 @@
|
||||||
[gd_scene load_steps=2 format=3 uid="uid://cpbaoqfc2kq80"]
|
[gd_scene load_steps=8 format=3 uid="uid://cpbaoqfc2kq80"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://decr4caey82gc" path="res://_props/move_plateform/path_drive_move_plateform/path_drive_move_plateform.gd" id="1_ouylf"]
|
[ext_resource type="Script" uid="uid://decr4caey82gc" path="res://_props/move_plateform/path_drive_move_plateform/path_drive_move_plateform.gd" id="1_ouylf"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://csdxpv8gefpec" path="res://_props/_prefabs/plateform/movable_plateform.tscn" id="2_yo6tx"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c673bap4b12fx" path="res://icon.svg" id="3_l54kj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bonrls3iuhdqb" path="res://_props/_prefabs/player/player_trigger_volumn.tscn" id="4_ylwpt"]
|
||||||
|
|
||||||
[node name="PathDriveMovePlateform" type="Node2D"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_82l4y"]
|
||||||
|
size = Vector2(120, 120)
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_k2ua5"]
|
||||||
|
size = Vector2(130, 130)
|
||||||
|
|
||||||
|
[sub_resource type="Curve2D" id="Curve2D_yo6tx"]
|
||||||
|
_data = {
|
||||||
|
"points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0)
|
||||||
|
}
|
||||||
|
point_count = 2
|
||||||
|
|
||||||
|
[node name="PathDriveMovePlateform" type="Node2D" node_paths=PackedStringArray("path2d", "plateform", "player_trigger")]
|
||||||
script = ExtResource("1_ouylf")
|
script = ExtResource("1_ouylf")
|
||||||
move_speed = 600.0
|
path2d = NodePath("Path2D")
|
||||||
|
plateform = NodePath("MovablePlateform")
|
||||||
|
player_trigger = NodePath("MovablePlateform/PlayerTriggerVolumn")
|
||||||
|
move_speed = 1200.0
|
||||||
returning_speed = 300.0
|
returning_speed = 300.0
|
||||||
|
acceleration = 1600.0
|
||||||
|
|
||||||
|
[node name="MovablePlateform" parent="." node_paths=PackedStringArray("shaking_target") instance=ExtResource("2_yo6tx")]
|
||||||
|
shaking_target = NodePath("Sprite2D")
|
||||||
|
shake_strength = 1.0
|
||||||
|
shake_duration = 1.0
|
||||||
|
shake_hz = 48.0
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="MovablePlateform"]
|
||||||
|
texture = ExtResource("3_l54kj")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="MovablePlateform"]
|
||||||
|
shape = SubResource("RectangleShape2D_82l4y")
|
||||||
|
debug_color = Color(1.7409995, 0, 0.33381775, 0.41960785)
|
||||||
|
|
||||||
|
[node name="PlayerTriggerVolumn" parent="MovablePlateform" instance=ExtResource("4_ylwpt")]
|
||||||
|
debug_print = true
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="MovablePlateform/PlayerTriggerVolumn"]
|
||||||
|
shape = SubResource("RectangleShape2D_k2ua5")
|
||||||
|
|
||||||
|
[node name="Path2D" type="Path2D" parent="."]
|
||||||
|
curve = SubResource("Curve2D_yo6tx")
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,23 @@ func change_state(state:State) -> void:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
## 当玩家钩爪击中平台底部时,直接激活平台(跳过 READY 状态)
|
||||||
|
func on_hook_hit(hit_global_pos: Vector2) -> void:
|
||||||
|
# 检测击中点是否在平台底部(击中点的 Y 大于等于平台的顶部)
|
||||||
|
var platform_top := plateform.global_position.y
|
||||||
|
# 考虑到碰撞体可能有偏移,稍微放宽条件
|
||||||
|
var is_bottom_hit := hit_global_pos.y >= platform_top - 10
|
||||||
|
|
||||||
|
if not is_bottom_hit:
|
||||||
|
return
|
||||||
|
|
||||||
|
# 只有在 IDLE 或 READY 状态才能被激活
|
||||||
|
if _current_state != State.IDLE and _current_state != State.READY:
|
||||||
|
return
|
||||||
|
|
||||||
|
# 直接进入 MOVING 状态
|
||||||
|
start_move()
|
||||||
|
|
||||||
## 当平台被触发时,切换状态
|
## 当平台被触发时,切换状态
|
||||||
func _on_trigger() -> void:
|
func _on_trigger() -> void:
|
||||||
change_state(State.READY)
|
change_state(State.READY)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=47 format=4 uid="uid://dsw3o2bhc8bve"]
|
[gd_scene load_steps=43 format=4 uid="uid://dsw3o2bhc8bve"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_7cppx"]
|
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_7cppx"]
|
||||||
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_4mxpo"]
|
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_4mxpo"]
|
||||||
|
|
@ -25,8 +25,6 @@
|
||||||
[ext_resource type="TileSet" uid="uid://doepkfp83k0lb" path="res://_tileset/test.tres" id="23_6lqui"]
|
[ext_resource type="TileSet" uid="uid://doepkfp83k0lb" path="res://_tileset/test.tres" id="23_6lqui"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bju8jr1w4d60m" path="res://_props/spring/spring.tscn" id="24_0k4x8"]
|
[ext_resource type="PackedScene" uid="uid://bju8jr1w4d60m" path="res://_props/spring/spring.tscn" id="24_0k4x8"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cpbaoqfc2kq80" path="res://_props/move_plateform/path_drive_move_plateform/PathDriveMovePlateform.tscn" id="25_ldp4y"]
|
[ext_resource type="PackedScene" uid="uid://cpbaoqfc2kq80" path="res://_props/move_plateform/path_drive_move_plateform/PathDriveMovePlateform.tscn" id="25_ldp4y"]
|
||||||
[ext_resource type="PackedScene" uid="uid://csdxpv8gefpec" path="res://_props/_prefabs/plateform/movable_plateform.tscn" id="26_k1jrx"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://c673bap4b12fx" path="res://icon.svg" id="27_lte3x"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b5nx4dntm0gyn" path="res://_props/door_manager/event_trigger_door.tscn" id="28_4mxpo"]
|
[ext_resource type="PackedScene" uid="uid://b5nx4dntm0gyn" path="res://_props/door_manager/event_trigger_door.tscn" id="28_4mxpo"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_6bhoi"]
|
[sub_resource type="Resource" id="Resource_6bhoi"]
|
||||||
|
|
@ -105,15 +103,9 @@ effect_target_type = SubResource("Resource_o2v7x")
|
||||||
effect_apply_type = SubResource("Resource_hatj6")
|
effect_apply_type = SubResource("Resource_hatj6")
|
||||||
metadata/_custom_type_script = "uid://cdvgq0xqdbagk"
|
metadata/_custom_type_script = "uid://cdvgq0xqdbagk"
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xevr6"]
|
[sub_resource type="Curve2D" id="Curve2D_glu07"]
|
||||||
size = Vector2(60, 60)
|
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_bhcjt"]
|
|
||||||
size = Vector2(65, 66)
|
|
||||||
|
|
||||||
[sub_resource type="Curve2D" id="Curve2D_fvh1v"]
|
|
||||||
_data = {
|
_data = {
|
||||||
"points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 495.975, 0)
|
"points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, 0)
|
||||||
}
|
}
|
||||||
point_count = 2
|
point_count = 2
|
||||||
|
|
||||||
|
|
@ -229,41 +221,17 @@ position = Vector2(920, -1480)
|
||||||
[node name="spring6" parent="." instance=ExtResource("24_0k4x8")]
|
[node name="spring6" parent="." instance=ExtResource("24_0k4x8")]
|
||||||
position = Vector2(1000, -1480)
|
position = Vector2(1000, -1480)
|
||||||
|
|
||||||
[node name="PathDriveMovePlateform2" parent="." node_paths=PackedStringArray("path2d", "plateform", "player_trigger") instance=ExtResource("25_ldp4y")]
|
[node name="PathDriveMovePlateform2" parent="." instance=ExtResource("25_ldp4y")]
|
||||||
position = Vector2(1164, -1762)
|
position = Vector2(1164, -1762)
|
||||||
path2d = NodePath("Path2D")
|
|
||||||
plateform = NodePath("MovablePlateform")
|
|
||||||
player_trigger = NodePath("MovablePlateform/PlayerTriggerVolumn")
|
|
||||||
move_speed = 300.0
|
move_speed = 300.0
|
||||||
returning_speed = 100.0
|
returning_speed = 100.0
|
||||||
acceleration = 1000.0
|
acceleration = 1000.0
|
||||||
|
|
||||||
[node name="MovablePlateform" parent="PathDriveMovePlateform2" node_paths=PackedStringArray("shaking_target") instance=ExtResource("26_k1jrx")]
|
[node name="MovablePlateform" parent="PathDriveMovePlateform2" index="0"]
|
||||||
shaking_target = NodePath("Sprite2D")
|
|
||||||
shake_strength = 1.0
|
|
||||||
shake_duration = 1.0
|
|
||||||
shake_hz = 48.0
|
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="PathDriveMovePlateform2/MovablePlateform"]
|
|
||||||
scale = Vector2(0.4, 0.4)
|
scale = Vector2(0.4, 0.4)
|
||||||
texture = ExtResource("27_lte3x")
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="PathDriveMovePlateform2/MovablePlateform"]
|
[node name="Path2D" parent="PathDriveMovePlateform2" index="1"]
|
||||||
scale = Vector2(0.8, 0.8)
|
curve = SubResource("Curve2D_glu07")
|
||||||
shape = SubResource("RectangleShape2D_xevr6")
|
|
||||||
debug_color = Color(1.7409995, 0, 0.33381775, 0.41960785)
|
|
||||||
|
|
||||||
[node name="PlayerTriggerVolumn" parent="PathDriveMovePlateform2/MovablePlateform" instance=ExtResource("17_5ludb")]
|
|
||||||
position = Vector2(-0.5, 0)
|
|
||||||
debug_print = true
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="PathDriveMovePlateform2/MovablePlateform/PlayerTriggerVolumn"]
|
|
||||||
scale = Vector2(0.8, 0.8)
|
|
||||||
shape = SubResource("RectangleShape2D_bhcjt")
|
|
||||||
|
|
||||||
[node name="Path2D" type="Path2D" parent="PathDriveMovePlateform2"]
|
|
||||||
scale = Vector2(1, 0.8)
|
|
||||||
curve = SubResource("Curve2D_fvh1v")
|
|
||||||
|
|
||||||
[node name="EventTriggerDoor" parent="." instance=ExtResource("28_4mxpo")]
|
[node name="EventTriggerDoor" parent="." instance=ExtResource("28_4mxpo")]
|
||||||
position = Vector2(1367, -2553)
|
position = Vector2(1367, -2553)
|
||||||
|
|
@ -271,3 +239,5 @@ rotation = -1.5707964
|
||||||
scale = Vector2(0.64, 0.64)
|
scale = Vector2(0.64, 0.64)
|
||||||
|
|
||||||
[connection signal="player_entered" from="Props/PlayerTriggerVolumn" to="SceneManager" method="_on_player_trigger_volumn_player_entered"]
|
[connection signal="player_entered" from="Props/PlayerTriggerVolumn" to="SceneManager" method="_on_player_trigger_volumn_player_entered"]
|
||||||
|
|
||||||
|
[editable path="PathDriveMovePlateform2"]
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -124,7 +124,6 @@ limit_top = 350
|
||||||
limit_bottom = -255
|
limit_bottom = -255
|
||||||
limit_left = -430
|
limit_left = -430
|
||||||
limit_right = 415
|
limit_right = 415
|
||||||
follow_player = true
|
|
||||||
|
|
||||||
[node name="[Prop_0000]" type="Node" parent="Props/CameraAnchor"]
|
[node name="[Prop_0000]" type="Node" parent="Props/CameraAnchor"]
|
||||||
script = ExtResource("9_03jph")
|
script = ExtResource("9_03jph")
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=47 format=4 uid="uid://dcoq4q3brnkw6"]
|
[gd_scene load_steps=43 format=4 uid="uid://dcoq4q3brnkw6"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_7313i"]
|
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_7313i"]
|
||||||
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_hxiiq"]
|
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_hxiiq"]
|
||||||
|
|
@ -26,8 +26,6 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://bju8jr1w4d60m" path="res://_props/spring/spring.tscn" id="26_qrhk0"]
|
[ext_resource type="PackedScene" uid="uid://bju8jr1w4d60m" path="res://_props/spring/spring.tscn" id="26_qrhk0"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cpbaoqfc2kq80" path="res://_props/move_plateform/path_drive_move_plateform/PathDriveMovePlateform.tscn" id="27_vqrg5"]
|
[ext_resource type="PackedScene" uid="uid://cpbaoqfc2kq80" path="res://_props/move_plateform/path_drive_move_plateform/PathDriveMovePlateform.tscn" id="27_vqrg5"]
|
||||||
[ext_resource type="PackedScene" uid="uid://iv8w7iisdqm0" path="res://_props/fragile_rock/fragile_rock.tscn" id="28_mso2b"]
|
[ext_resource type="PackedScene" uid="uid://iv8w7iisdqm0" path="res://_props/fragile_rock/fragile_rock.tscn" id="28_mso2b"]
|
||||||
[ext_resource type="PackedScene" uid="uid://csdxpv8gefpec" path="res://_props/_prefabs/plateform/movable_plateform.tscn" id="28_opxyd"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://c673bap4b12fx" path="res://icon.svg" id="29_b7vlt"]
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_6bhoi"]
|
[sub_resource type="Resource" id="Resource_6bhoi"]
|
||||||
script = ExtResource("8_kk8q0")
|
script = ExtResource("8_kk8q0")
|
||||||
|
|
@ -105,15 +103,9 @@ effect_target_type = SubResource("Resource_o2v7x")
|
||||||
effect_apply_type = SubResource("Resource_hatj6")
|
effect_apply_type = SubResource("Resource_hatj6")
|
||||||
metadata/_custom_type_script = "uid://cdvgq0xqdbagk"
|
metadata/_custom_type_script = "uid://cdvgq0xqdbagk"
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xevr6"]
|
[sub_resource type="Curve2D" id="Curve2D_ll203"]
|
||||||
size = Vector2(60, 60)
|
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_bhcjt"]
|
|
||||||
size = Vector2(65, 66)
|
|
||||||
|
|
||||||
[sub_resource type="Curve2D" id="Curve2D_fvh1v"]
|
|
||||||
_data = {
|
_data = {
|
||||||
"points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 495.975, 0)
|
"points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 506, 0)
|
||||||
}
|
}
|
||||||
point_count = 2
|
point_count = 2
|
||||||
|
|
||||||
|
|
@ -145,7 +137,6 @@ limit_top = -185
|
||||||
limit_bottom = 185
|
limit_bottom = 185
|
||||||
limit_left = -320
|
limit_left = -320
|
||||||
limit_right = 290
|
limit_right = 290
|
||||||
follow_player = true
|
|
||||||
|
|
||||||
[node name="[Prop_0000]" type="Node" parent="Props/CameraAnchor"]
|
[node name="[Prop_0000]" type="Node" parent="Props/CameraAnchor"]
|
||||||
script = ExtResource("11_gkqbq")
|
script = ExtResource("11_gkqbq")
|
||||||
|
|
@ -228,43 +219,21 @@ position = Vector2(920, -1480)
|
||||||
[node name="spring6" parent="." instance=ExtResource("26_qrhk0")]
|
[node name="spring6" parent="." instance=ExtResource("26_qrhk0")]
|
||||||
position = Vector2(1000, -1480)
|
position = Vector2(1000, -1480)
|
||||||
|
|
||||||
[node name="PathDriveMovePlateform2" parent="." node_paths=PackedStringArray("path2d", "plateform", "player_trigger") instance=ExtResource("27_vqrg5")]
|
[node name="PathDriveMovePlateform2" parent="." instance=ExtResource("27_vqrg5")]
|
||||||
position = Vector2(520, -1752)
|
position = Vector2(520, -1752)
|
||||||
path2d = NodePath("Path2D")
|
|
||||||
plateform = NodePath("MovablePlateform")
|
|
||||||
player_trigger = NodePath("MovablePlateform/PlayerTriggerVolumn")
|
|
||||||
move_speed = 300.0
|
move_speed = 300.0
|
||||||
returning_speed = 100.0
|
returning_speed = 100.0
|
||||||
acceleration = 1000.0
|
acceleration = 1000.0
|
||||||
|
|
||||||
[node name="MovablePlateform" parent="PathDriveMovePlateform2" node_paths=PackedStringArray("shaking_target") instance=ExtResource("28_opxyd")]
|
[node name="MovablePlateform" parent="PathDriveMovePlateform2" index="0"]
|
||||||
shaking_target = NodePath("Sprite2D")
|
scale = Vector2(0.5, 0.5)
|
||||||
shake_strength = 1.0
|
|
||||||
shake_duration = 1.0
|
|
||||||
shake_hz = 48.0
|
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="PathDriveMovePlateform2/MovablePlateform"]
|
[node name="Path2D" parent="PathDriveMovePlateform2" index="1"]
|
||||||
scale = Vector2(0.4, 0.4)
|
curve = SubResource("Curve2D_ll203")
|
||||||
texture = ExtResource("29_b7vlt")
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="PathDriveMovePlateform2/MovablePlateform"]
|
|
||||||
scale = Vector2(0.8, 0.8)
|
|
||||||
shape = SubResource("RectangleShape2D_xevr6")
|
|
||||||
debug_color = Color(1.7409995, 0, 0.33381775, 0.41960785)
|
|
||||||
|
|
||||||
[node name="PlayerTriggerVolumn" parent="PathDriveMovePlateform2/MovablePlateform" instance=ExtResource("17_wewc2")]
|
|
||||||
position = Vector2(-0.5, 0)
|
|
||||||
debug_print = true
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="PathDriveMovePlateform2/MovablePlateform/PlayerTriggerVolumn"]
|
|
||||||
scale = Vector2(0.8, 0.8)
|
|
||||||
shape = SubResource("RectangleShape2D_bhcjt")
|
|
||||||
|
|
||||||
[node name="Path2D" type="Path2D" parent="PathDriveMovePlateform2"]
|
|
||||||
scale = Vector2(1, 0.8)
|
|
||||||
curve = SubResource("Curve2D_fvh1v")
|
|
||||||
|
|
||||||
[node name="FragileRock" parent="." instance=ExtResource("28_mso2b")]
|
[node name="FragileRock" parent="." instance=ExtResource("28_mso2b")]
|
||||||
position = Vector2(840, -1752)
|
position = Vector2(840, -1752)
|
||||||
|
|
||||||
[connection signal="player_entered" from="Props/PlayerTriggerVolumn" to="SceneManager" method="_on_player_trigger_volumn_player_entered"]
|
[connection signal="player_entered" from="Props/PlayerTriggerVolumn" to="SceneManager" method="_on_player_trigger_volumn_player_entered"]
|
||||||
|
|
||||||
|
[editable path="PathDriveMovePlateform2"]
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ var _tween: Tween
|
||||||
const GRAPABLE_GROUP = &"GRAPABLE"
|
const GRAPABLE_GROUP = &"GRAPABLE"
|
||||||
|
|
||||||
signal stretching_finished(reach_limit: bool, anchor_node: Node2D)
|
signal stretching_finished(reach_limit: bool, anchor_node: Node2D)
|
||||||
|
## 钩爪击中物体信号,target 是被击中的物体,hit_pos 是击中点世界坐标
|
||||||
|
signal hook_hit(target: Node2D, hit_pos: Vector2)
|
||||||
|
|
||||||
## ================
|
## ================
|
||||||
## Private Field
|
## Private Field
|
||||||
|
|
@ -126,6 +128,13 @@ func _handle_hit(target: Node2D, hit_pos: Vector2) -> void:
|
||||||
|
|
||||||
ray.target_position = to_local(hit_pos)
|
ray.target_position = to_local(hit_pos)
|
||||||
|
|
||||||
|
# 如果 target 有 on_hook_hit 方法,调用它
|
||||||
|
if target.has_method(&"on_hook_hit"):
|
||||||
|
target.on_hook_hit(hit_pos)
|
||||||
|
|
||||||
|
if target.owner.has_method(&"on_hook_hit"):
|
||||||
|
target.owner.on_hook_hit(hit_pos)
|
||||||
|
|
||||||
var reach_max := is_equal_approx(_current_length, max_length)
|
var reach_max := is_equal_approx(_current_length, max_length)
|
||||||
var anchor := _create_anchor_on_node(target, hit_pos)
|
var anchor := _create_anchor_on_node(target, hit_pos)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue