arrows are moving properly now

This commit is contained in:
derek
2025-06-26 13:30:23 -05:00
parent f7d3476a56
commit af5ff6f284
5 changed files with 28 additions and 12 deletions

View File

@@ -78,15 +78,14 @@ margin = 0.0
height = 1.77637
radius = 0.1
[node name="Arrow" type="RigidBody3D"]
collision_layer = 2
collision_mask = 7
continuous_cd = true
contact_monitor = true
[node name="Arrow" type="MeshInstance3D"]
script = ExtResource("1_c7yig")
[node name="LandDepth" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.31712)
[node name="Arrow" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, -0.592316)
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, -1.57945)
mesh = SubResource("ArrayMesh_u78lm")
skeleton = NodePath("")
metadata/extras = {
@@ -94,6 +93,11 @@ metadata/extras = {
"poliigon_props": {}
}
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, -4.88765e-09, 0.111816)
[node name="ArrowCollider" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, -4.88765e-09, -0.875317)
[node name="CollisionShape3D" type="CollisionShape3D" parent="ArrowCollider"]
shape = SubResource("CylinderShape3D_c7yig")
[node name="HitRay" type="RayCast3D" parent="."]
target_position = Vector3(0, 0, -2)

View File

@@ -89,7 +89,7 @@ _data = {
radius = 2.5
[node name="Player" type="CharacterBody3D"]
collision_layer = 4
collision_layer = 20
collision_mask = 5
script = ExtResource("1_5wxv7")

View File

@@ -1 +1,13 @@
extends Projectile
@onready var hit_ray: RayCast3D = $HitRay
@onready var land_depth: Marker3D = $LandDepth
func _process(delta: float) -> void:
if hit_ray.is_colliding():
var stick_point = hit_ray.get_collision_point()
if land_depth.global_position.distance_to(stick_point) > .2:
global_position += global_transform.basis * Vector3(0,0,-speed) * delta
else:
global_position += global_transform.basis * Vector3(0,0,-speed) * delta

View File

@@ -1,4 +1,4 @@
extends RigidBody3D
extends Node3D
class_name Projectile
var damage

View File

@@ -17,8 +17,8 @@ func Physics_Update(delta):
func fire_projectile():
var arrow_spawn = fired_object.instantiate()
arrow_spawn.speed = object_speed
get_tree().current_scene.add_child(arrow_spawn)
arrow_spawn.speed = object_speed
arrow_spawn.transform.basis = character.body.global_transform.basis
arrow_spawn.global_position = character.body.global_position
arrow_spawn.linear_velocity += character.body.global_transform.basis * Vector3(0,0,-object_speed)
print("ARROW POS :", arrow_spawn.global_position)