add a custom audio listener

This commit is contained in:
Teatov 2024-10-13 15:51:38 +10:00
parent ae63c97277
commit 52517fac05
3 changed files with 13 additions and 6 deletions

View File

@ -196,7 +196,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50.9454, -8.10623e-06, -60.0
gizmo_extents = 4.7
script = ExtResource("3_vkmt5")
what = 1
amount = 30
amount = 0
[node name="UI" type="Node" parent="."]
@ -216,7 +216,7 @@ fov = 37.8493
script = ExtResource("1_gnxhh")
[node name="AudioListener3D" type="AudioListener3D" parent="MainCamera"]
current = true
top_level = true
[node name="AmbientAudio" type="AudioStreamPlayer" parent="."]
process_mode = 3

View File

@ -53,11 +53,14 @@ var state: CameraState = CameraState.FREE
var window_out_of_focus: bool = false
@onready var attrs: CameraAttributesPractical = attributes
@onready var listener: AudioListener3D = $AudioListener3D
func _ready() -> void:
assert(attrs != null, "attrs missing!")
assert(listener != null, "listener missing!")
target_position = StaticNodesManager.player_anthill.global_position
listener.make_current()
func _process(delta: float) -> void:
@ -67,17 +70,20 @@ func _process(delta: float) -> void:
zoom_value = lerpf(zoom_value, zoom_unsmoothed, delta * ZOOM_DAMP)
fov = lerpf(zoom_in_fov, zoom_out_fov, zoom_value)
rotation.x = lerpf(zoom_in_angle, zoom_out_angle, zoom_value)
global_rotation.x = lerpf(zoom_in_angle, zoom_out_angle, zoom_value)
var distance: float = lerpf(zoom_in_distance, zoom_out_distance, zoom_value)
var offset_direction := Vector3.BACK.rotated(Vector3.RIGHT, rotation.x)
var offset_direction := Vector3.BACK.rotated(Vector3.RIGHT, global_rotation.x)
var offset := offset_direction * distance
global_position = target_position + offset
listener.global_position = target_position + (Vector3.UP * distance)
listener.global_rotation = global_rotation
_handle_dof()
_handle_advance_anim_step()
DebugManager.marker(target_position, 0.05)
DebugManager.marker(listener.global_position, 0.05, Color.GREEN)
func _input(event: InputEvent) -> void:
@ -180,7 +186,7 @@ func _handle_movement(delta: float) -> void:
var direction := (
Vector3(move_input.x, 0, move_input.y)
.rotated(Vector3.UP, rotation.y)
.rotated(Vector3.UP, global_rotation.y)
)
var speed: float = lerpf(zoom_in_speed, zoom_out_speed, zoom_value)

View File

@ -50,7 +50,8 @@ func _handle_honeydew_spawn(delta: float) -> void:
if honeydew_spawn_timer >= 0:
honeydew_spawn_timer -= delta
return
audio_player.play_sound(SoundManager.pop())
var new_honeydew := honeydew_scene.instantiate() as Honeydew
new_honeydew.set_aphid(self)