generated from krampus/template-godot4
Free camera & shot projection collide with water
This commit is contained in:
parent
30dc7050be
commit
7c3a2002b7
|
@ -230,7 +230,7 @@ locale/translations=PackedStringArray("res://assets/text/text.en.translation")
|
|||
[layer_names]
|
||||
|
||||
3d_physics/layer_1="Collision Geometry"
|
||||
3d_physics/layer_2="Layer 2"
|
||||
3d_physics/layer_2="Water"
|
||||
3d_physics/layer_27="Glass Material"
|
||||
3d_physics/layer_28="Metal Material"
|
||||
3d_physics/layer_29="Rock Material"
|
||||
|
|
|
@ -316,6 +316,7 @@ func _show_shot_projection() -> void:
|
|||
if not game_ball:
|
||||
return
|
||||
|
||||
shot_projection.set_ball(game_ball)
|
||||
shot_projection.putt_projection = club_type == Club.Type.PUTTER
|
||||
shot_projection.initial_speed = 1
|
||||
shot_projection.basis = Basis.from_euler(Vector3(club.angle, 0, 0))
|
||||
|
@ -324,7 +325,6 @@ func _show_shot_projection() -> void:
|
|||
tween.tween_property(shot_projection, "initial_speed", shot_speed, CAMERA_SNAP_TIME).set_trans(
|
||||
Tween.TRANS_QUAD
|
||||
)
|
||||
shot_projection.linear_damp = game_ball.linear_damp
|
||||
shot_projection.show()
|
||||
|
||||
|
||||
|
|
|
@ -574,7 +574,7 @@ loop_animation = 1
|
|||
|
||||
[node name="ShotProjection" parent="ArrowPivot" instance=ExtResource("4_ry2ho")]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, -0.02, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, 0)
|
||||
visible = false
|
||||
initial_speed = 50.0
|
||||
time_step = 0.1
|
||||
|
|
|
@ -27,7 +27,7 @@ const PUTT_ATTRITION := 0.8325 # green?
|
|||
## Uses continuous collision detection.
|
||||
@export var check_collision := true
|
||||
## Mask for collision checking.
|
||||
@export_flags_3d_physics var collision_mask := 1
|
||||
@export_flags_3d_physics var collision_mask := 1 | 2
|
||||
## Bodies excluded from collision checking.
|
||||
## This should probably include the ball!
|
||||
@export var excluded_bodies: Array[CollisionObject3D] = []
|
||||
|
@ -61,6 +61,11 @@ var _cached_vel: Vector3
|
|||
@onready var debug_draw: Control = %DebugDraw
|
||||
|
||||
|
||||
func set_ball(ball: GameBall) -> void:
|
||||
global_position = ball.global_position
|
||||
linear_damp = ball.linear_damp
|
||||
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
if not visible:
|
||||
# Don't bother if we're not visible
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
[node name="FreeCamera" type="CharacterBody3D"]
|
||||
process_mode = 3
|
||||
collision_layer = 0
|
||||
collision_mask = 3
|
||||
script = ExtResource("1_3gm3q")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
|
|
Loading…
Reference in New Issue