feat: scene individual audio, first footstep sound
This commit is contained in:
parent
30bbc8c561
commit
7d4e9346b0
4
AudioTool.gd
Normal file
4
AudioTool.gd
Normal file
@ -0,0 +1,4 @@
|
||||
extends Node
|
||||
|
||||
|
||||
func
|
||||
Binary file not shown.
@ -1,23 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/CARTOON_Boing_mono.wav-81d92ba0a26e12caac0c691ba7bd8dae.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/CARTOON_Boing_mono.wav"
|
||||
dest_files=[ "res://.import/CARTOON_Boing_mono.wav-81d92ba0a26e12caac0c691ba7bd8dae.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=true
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=true
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
Binary file not shown.
@ -1,23 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/CHARGE_Sci-Fi_High_Pass_Sweep_12_Semi_Up_1000ms_stereo.wav-e9fdccf3dd8981f444963ea286d10a66.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/CHARGE_Sci-Fi_High_Pass_Sweep_12_Semi_Up_1000ms_stereo.wav"
|
||||
dest_files=[ "res://.import/CHARGE_Sci-Fi_High_Pass_Sweep_12_Semi_Up_1000ms_stereo.wav-e9fdccf3dd8981f444963ea286d10a66.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=true
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=true
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
Binary file not shown.
@ -1,23 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/CHARGE_Servo_24_Semi_Down_1000ms_stereo.wav-5af2adaf3db9d036f376f5fcfbebb90f.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/CHARGE_Servo_24_Semi_Down_1000ms_stereo.wav"
|
||||
dest_files=[ "res://.import/CHARGE_Servo_24_Semi_Down_1000ms_stereo.wav-5af2adaf3db9d036f376f5fcfbebb90f.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=true
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=true
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
Binary file not shown.
@ -1,15 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/EpsonConfirm.ogg-afcbf35268794be2a4b1abc7659589c6.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/EpsonConfirm.ogg"
|
||||
dest_files=[ "res://.import/EpsonConfirm.ogg-afcbf35268794be2a4b1abc7659589c6.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
Binary file not shown.
@ -1,15 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/EpsonStart.ogg-cf6baaf875194cd4e5ab013852eadd9b.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/EpsonStart.ogg"
|
||||
dest_files=[ "res://.import/EpsonStart.ogg-cf6baaf875194cd4e5ab013852eadd9b.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
Binary file not shown.
@ -1,23 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/FOOTSTEP_Trainers_Snow_Loose_Walk_Slow_RR1_mono.wav-6edde518b74de309deea3948759e321a.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/FOOTSTEP_Trainers_Snow_Loose_Walk_Slow_RR1_mono.wav"
|
||||
dest_files=[ "res://.import/FOOTSTEP_Trainers_Snow_Loose_Walk_Slow_RR1_mono.wav-6edde518b74de309deea3948759e321a.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=true
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=true
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
Binary file not shown.
@ -1,15 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/Feueralarm.ogg-711b767a9b7329373d887d0a3749e3b3.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/Feueralarm.ogg"
|
||||
dest_files=[ "res://.import/Feueralarm.ogg-711b767a9b7329373d887d0a3749e3b3.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
Binary file not shown.
@ -1,23 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/LOTUS_FLUTE_Whistle_Down_Wobble_02_mono.wav-c63e548b66db83b8da58c35640a35149.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/LOTUS_FLUTE_Whistle_Down_Wobble_02_mono.wav"
|
||||
dest_files=[ "res://.import/LOTUS_FLUTE_Whistle_Down_Wobble_02_mono.wav-c63e548b66db83b8da58c35640a35149.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=true
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=true
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
Binary file not shown.
@ -1,15 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/Treffer.ogg-5734bdf815cf89fe88da7e1754b8bf7b.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/Treffer.ogg"
|
||||
dest_files=[ "res://.import/Treffer.ogg-5734bdf815cf89fe88da7e1754b8bf7b.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
Binary file not shown.
@ -1,23 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/biup.wav-56939945d1672e675020822b7ecc1e5b.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/biup.wav"
|
||||
dest_files=[ "res://.import/biup.wav-56939945d1672e675020822b7ecc1e5b.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=true
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=true
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
Binary file not shown.
BIN
assets/sounds/footsteps.ogg
Normal file
BIN
assets/sounds/footsteps.ogg
Normal file
Binary file not shown.
15
assets/sounds/footsteps.ogg.import
Normal file
15
assets/sounds/footsteps.ogg.import
Normal file
@ -0,0 +1,15 @@
|
||||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/footsteps.ogg-db9696a28bb451faa0ab0d3414320fd1.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/footsteps.ogg"
|
||||
dest_files=[ "res://.import/footsteps.ogg-db9696a28bb451faa0ab0d3414320fd1.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=true
|
||||
loop_offset=0
|
||||
1
assets/sounds/grass 3 single step 3.txt
Normal file
1
assets/sounds/grass 3 single step 3.txt
Normal file
@ -0,0 +1 @@
|
||||
soniss gdc pack, ryk-sound, no attribution needed
|
||||
BIN
assets/sounds/grass 3 single step 3.wav
Normal file
BIN
assets/sounds/grass 3 single step 3.wav
Normal file
Binary file not shown.
@ -2,12 +2,12 @@
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/boingo.wav-47e169bf3365758b9af8575ec8c64b02.sample"
|
||||
path="res://.import/grass 3 single step 3.wav-2f7d8073200559f99a8e0cf713050fbb.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/boingo.wav"
|
||||
dest_files=[ "res://.import/boingo.wav-47e169bf3365758b9af8575ec8c64b02.sample" ]
|
||||
source_file="res://assets/sounds/grass 3 single step 3.wav"
|
||||
dest_files=[ "res://.import/grass 3 single step 3.wav-2f7d8073200559f99a8e0cf713050fbb.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
Binary file not shown.
@ -1,15 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/walkingsoundmaybe.ogg-01e3269b8c8ef8a667739d9f368a91b3.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sounds/walkingsoundmaybe.ogg"
|
||||
dest_files=[ "res://.import/walkingsoundmaybe.ogg-01e3269b8c8ef8a667739d9f368a91b3.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
@ -282,7 +282,7 @@ pause={
|
||||
}
|
||||
ui_click={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null)
|
||||
"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"doubleclick":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
@ -302,6 +302,7 @@ ui_click={
|
||||
[physics]
|
||||
|
||||
common/physics_fps=120
|
||||
common/physics_jitter_fix=0.8
|
||||
2d/thread_model=0
|
||||
2d/cell_size=100
|
||||
common/physics_interpolation=true
|
||||
|
||||
@ -4,6 +4,7 @@ const PhysicsFunc = preload("res://src/Utilities/Physic/PhysicsFunc.gd")
|
||||
onready var left_wall_raycasts = $WallRaycasts/LeftWallRaycast
|
||||
onready var right_wall_raycasts = $WallRaycasts/RightWallRaycast
|
||||
onready var effect_player = $BlobbyActionEffects/AnimationPlayer
|
||||
onready var scene_audio = $SceneAudio
|
||||
|
||||
onready var death_shader = preload("res://src/Actors/Blobby/DeathShader.tres")
|
||||
onready var invincible_shader = preload("res://src/Actors/Blobby/InvincibleShader.tres")
|
||||
@ -12,7 +13,6 @@ onready var player_state_machine = $BlobbyStateMachine
|
||||
onready var init_boost = player_state_machine.init_boost
|
||||
onready var init_boost_type = player_state_machine.init_boost_type
|
||||
|
||||
|
||||
export var jump_buffer_filled := false
|
||||
|
||||
var wall_touch_direction = 1
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=128 format=2]
|
||||
[gd_scene load_steps=129 format=2]
|
||||
|
||||
[ext_resource path="res://assets/effects/blobby-effects-spritesheet.png" type="Texture" id=1]
|
||||
[ext_resource path="res://src/Actors/Blobby/DeathShader.tres" type="Material" id=2]
|
||||
@ -8,6 +8,7 @@
|
||||
[ext_resource path="res://src/ThirdParty/Demo/IridescenceBall.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://assets/effects/run-dusting-left.png" type="Texture" id=7]
|
||||
[ext_resource path="res://assets/effects/jump-point.png" type="Texture" id=8]
|
||||
[ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=9]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
extents = Vector2( 14.9127, 5.98593 )
|
||||
@ -4196,6 +4197,8 @@ text = "Ihre Werbung"
|
||||
align = 1
|
||||
valign = 1
|
||||
|
||||
[node name="SceneAudio" parent="." instance=ExtResource( 9 )]
|
||||
|
||||
[node name="Listener2D" type="Listener2D" parent="."]
|
||||
current = true
|
||||
|
||||
@ -4400,11 +4403,9 @@ one_shot = true
|
||||
wait_time = 0.809
|
||||
one_shot = true
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
|
||||
[connection signal="area_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_area_entered"]
|
||||
[connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"]
|
||||
[connection signal="timeout" from="BlobbyStateMachine/JumpBufferTimer" to="BlobbyStateMachine" method="_on_JumpBufferTimer_timeout"]
|
||||
[connection signal="timeout" from="InvincibilityTimer" to="." method="_on_InvincibilityTimer_timeout"]
|
||||
[connection signal="timeout" from="PitfallTimer" to="." method="_on_PitfallTimer_timeout"]
|
||||
[connection signal="timeout" from="PitfallTimer" to="." method="die_for_real"]
|
||||
[connection signal="timeout" from="PitfallTimer" to="." method="_on_PitfallTimer_timeout"]
|
||||
|
||||
@ -1031,7 +1031,6 @@ texture = ExtResource( 8 )
|
||||
|
||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||
frames = SubResource( 7 )
|
||||
frame = 9
|
||||
playing = true
|
||||
|
||||
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||
|
||||
@ -3,7 +3,7 @@ onready var players: Dictionary = {}
|
||||
|
||||
|
||||
func play_scene_independent(sound_name: String, bus: String = "Master", attenuation: float = 0.0,
|
||||
singleton = false, start_time = 0.0, random_pitch = false) -> void:
|
||||
singleton = false, start_time = 0.0, random_pitch = false, pitch = 1.0) -> void:
|
||||
if singleton && players.has(sound_name):
|
||||
return
|
||||
var disposable_player = AudioStreamPlayer.new()
|
||||
@ -15,6 +15,7 @@ func play_scene_independent(sound_name: String, bus: String = "Master", attenuat
|
||||
disposable_player.stream = stream
|
||||
disposable_player.volume_db = attenuation
|
||||
disposable_player.bus = bus
|
||||
disposable_player.pitch_scale = pitch
|
||||
disposable_player.play(start_time)
|
||||
disposable_player.connect("finished", self, "dispose_player", [weakref(disposable_player)])
|
||||
players[sound_name] = weakref(disposable_player)
|
||||
@ -23,6 +24,14 @@ func dispose_player(player: WeakRef) -> void:
|
||||
if !player.get_ref(): return
|
||||
player.get_ref().queue_free()
|
||||
|
||||
func pause_scene_independent(sound_name: String):
|
||||
if players.has(sound_name) && players[sound_name].get_ref():
|
||||
players[sound_name].set_stream_paused(true)
|
||||
|
||||
func continue_scene_independent(sound_name: String):
|
||||
if players.has(sound_name) && players[sound_name].get_ref():
|
||||
players[sound_name].set_stream_paused(false)
|
||||
|
||||
func stop_scene_independent(sound_name: String):
|
||||
if players.has(sound_name) && players[sound_name].get_ref():
|
||||
dispose_player(players[sound_name])
|
||||
|
||||
@ -207,9 +207,6 @@ position = Vector2( -24.5, 0 )
|
||||
unique_name_in_owner = true
|
||||
process_mode = 1
|
||||
|
||||
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
|
||||
frame = 1
|
||||
|
||||
[node name="Blobby" parent="." instance=ExtResource( 7 )]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2( -70, 1 )
|
||||
|
||||
@ -1034,9 +1034,6 @@ unique_name_in_owner = true
|
||||
drag_margin_top = 0.1
|
||||
drag_margin_bottom = 0.1
|
||||
|
||||
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
|
||||
frame = 3
|
||||
|
||||
[node name="Blobby" parent="." instance=ExtResource( 8 )]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2( -156, -51 )
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
[gd_resource type="AudioBusLayout" load_steps=11 format=2]
|
||||
[gd_resource type="AudioBusLayout" load_steps=9 format=2]
|
||||
|
||||
[sub_resource type="AudioEffectPitchShift" id=1]
|
||||
resource_name = "PitchShift"
|
||||
@ -40,17 +40,8 @@ resource_name = "HighPassFilter"
|
||||
resource_name = "LowPassFilter"
|
||||
cutoff_hz = 3000.0
|
||||
|
||||
[sub_resource type="AudioEffectDistortion" id=9]
|
||||
resource_name = "Distortion"
|
||||
mode = 4
|
||||
keep_hf_hz = 1000.0
|
||||
post_gain = -5.0
|
||||
|
||||
[sub_resource type="AudioEffectLowPassFilter" id=10]
|
||||
resource_name = "LowPassFilter"
|
||||
|
||||
[resource]
|
||||
bus/0/volume_db = -6.0206
|
||||
bus/0/volume_db = -10.4576
|
||||
bus/1/name = "Music"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
@ -85,13 +76,3 @@ bus/3/effect/1/effect = SubResource( 7 )
|
||||
bus/3/effect/1/enabled = false
|
||||
bus/3/effect/2/effect = SubResource( 8 )
|
||||
bus/3/effect/2/enabled = true
|
||||
bus/4/name = "Blobby"
|
||||
bus/4/solo = false
|
||||
bus/4/mute = false
|
||||
bus/4/bypass_fx = false
|
||||
bus/4/volume_db = 0.0
|
||||
bus/4/send = "Master"
|
||||
bus/4/effect/0/effect = SubResource( 9 )
|
||||
bus/4/effect/0/enabled = true
|
||||
bus/4/effect/1/effect = SubResource( 10 )
|
||||
bus/4/effect/1/enabled = true
|
||||
|
||||
@ -4,9 +4,13 @@ signal got_grounded
|
||||
|
||||
export var init_boost = false
|
||||
export var init_boost_type = ""
|
||||
|
||||
export(String, FILE) var footstep_sound := "res://assets/sounds/footsteps.ogg"
|
||||
|
||||
onready var anim_player = parent.get_node("%BlobbymationPlayer")
|
||||
onready var anim_state_playback = parent.get_node("%BlobbymationTree").get("parameters/playback")
|
||||
onready var anim_tree = parent.get_node("%BlobbymationTree")
|
||||
onready var scene_audio = parent.get_node("SceneAudio")
|
||||
onready var running_particles = parent.get_node("RunningParticles")
|
||||
onready var jump_point_particles = parent.get_node("JumpPointParticles")
|
||||
onready var run_dust_res = load("res://assets/effects/run-dusting.png")
|
||||
@ -210,8 +214,8 @@ func _enter_state(new_state, old_state):
|
||||
|
||||
if !["run", "walk", "idle", "duck"].has(old_state) && parent.is_on_floor():
|
||||
emit_signal("got_grounded")
|
||||
GlobalAudio.play_scene_independent("res://assets/sounds/landingMedHard.ogg", "Effects",
|
||||
-15.0, false, 0.10, true)
|
||||
scene_audio.play_parallel_sound("res://assets/sounds/landingMedHard.ogg",
|
||||
-15.0, true, 1.0, 0.1)
|
||||
|
||||
|
||||
match new_state:
|
||||
@ -222,6 +226,7 @@ func _enter_state(new_state, old_state):
|
||||
anim_state_playback.travel("idleTurn")
|
||||
else:
|
||||
anim_state_playback.travel("walking")
|
||||
scene_audio.play_sound(footstep_sound, -3.0, true, 1.6)
|
||||
states.idle:
|
||||
anim_state_playback.travel("idling")
|
||||
states.duck:
|
||||
@ -237,6 +242,7 @@ func _enter_state(new_state, old_state):
|
||||
anim_state_playback.travel("falling")
|
||||
states.run:
|
||||
anim_state_playback.travel("running")
|
||||
scene_audio.play_sound(footstep_sound, -3.0, true, 2.0)
|
||||
states.wallslide:
|
||||
# TODO When the hitbox transforms from wallslide to idle, blobby hangs in the air and that triggers the wallslide on landing
|
||||
if(old_state != states.idle):
|
||||
@ -244,9 +250,9 @@ func _enter_state(new_state, old_state):
|
||||
|
||||
|
||||
func _exit_state(_old_state, _new_state):
|
||||
scene_audio.stop_sound()
|
||||
if(_old_state == "run"):
|
||||
running_particles.emitting = false
|
||||
pass
|
||||
|
||||
func _set_blendspaces_direction(value):
|
||||
running_particles.texture = run_dust_res if facing == -1 else run_dust_left_res
|
||||
|
||||
BIN
src/ThirdParty/Demo/meshinstance.material
vendored
BIN
src/ThirdParty/Demo/meshinstance.material
vendored
Binary file not shown.
@ -1,25 +1,58 @@
|
||||
extends Node
|
||||
onready var players: Dictionary = {}
|
||||
onready var static_player: AudioStreamPlayer = $StaticPlayer
|
||||
var disposable_player: AudioStreamPlayer
|
||||
|
||||
# Plays sound with the static player, interrupting sounds if currently playing
|
||||
func play_sound(sound_name: String, attenuation: float = 0.0, random_pitch = false,
|
||||
pitch = 1.0, start_time = 0.0, bus: String = "Effects", singleton = false) -> void:
|
||||
# TODO is it bad to grab the stream each time?
|
||||
var stream = GlobalState.sound_library[sound_name]
|
||||
if random_pitch:
|
||||
stream = AudioStreamRandomPitch.new()
|
||||
stream.audio_stream = GlobalState.sound_library[sound_name]
|
||||
static_player.stream = stream
|
||||
static_player.volume_db = attenuation
|
||||
static_player.bus = bus
|
||||
static_player.pitch_scale = pitch
|
||||
static_player.play(start_time)
|
||||
|
||||
func play_scene_dependent(sound_name: String, bus: String = "Master", attenuation: float = 0.0, singleton = false) -> void:
|
||||
func stop_sound():
|
||||
static_player.stop()
|
||||
|
||||
# Mirrors the GlobalAudio Method which can play sounds across scenes
|
||||
func play_parallel_sound(sound_name: String, attenuation: float = 0.0, random_pitch = false,
|
||||
pitch = 1.0, start_time = 0.0, bus: String = "Effects", singleton = false) -> void:
|
||||
if singleton && players.has(sound_name):
|
||||
return
|
||||
disposable_player = AudioStreamPlayer.new()
|
||||
var disposable_player = AudioStreamPlayer.new()
|
||||
add_child(disposable_player)
|
||||
disposable_player.stream = GlobalState.sound_library[sound_name]
|
||||
var stream = GlobalState.sound_library[sound_name]
|
||||
if random_pitch:
|
||||
stream = AudioStreamRandomPitch.new()
|
||||
stream.audio_stream = GlobalState.sound_library[sound_name]
|
||||
disposable_player.stream = stream
|
||||
disposable_player.volume_db = attenuation
|
||||
disposable_player.bus = bus
|
||||
disposable_player.play()
|
||||
disposable_player.connect("finished", self, "dispose_player")
|
||||
players[sound_name] = disposable_player
|
||||
disposable_player.pitch_scale = pitch
|
||||
disposable_player.play(start_time)
|
||||
disposable_player.connect("finished", self, "dispose_player", [weakref(disposable_player)])
|
||||
players[sound_name] = weakref(disposable_player)
|
||||
|
||||
func dispose_player(player: AudioStreamPlayer = disposable_player) -> void:
|
||||
if player == null: return
|
||||
player.queue_free()
|
||||
func dispose_parallel_player(player: WeakRef) -> void:
|
||||
if !player.get_ref(): return
|
||||
player.get_ref().queue_free()
|
||||
|
||||
func stop_scene_dependent(sound_name: String):
|
||||
if players.has(sound_name):
|
||||
dispose_player(players[sound_name])
|
||||
func pause_parallel_sound(sound_name: String):
|
||||
if players.has(sound_name) && players[sound_name].get_ref():
|
||||
players[sound_name].set_stream_paused(true)
|
||||
|
||||
func continue_parallel_sound(sound_name: String):
|
||||
if players.has(sound_name) && players[sound_name].get_ref():
|
||||
players[sound_name].set_stream_paused(false)
|
||||
|
||||
func stop_parallel_sound(sound_name: String):
|
||||
if players.has(sound_name) && players[sound_name].get_ref():
|
||||
dispose_parallel_player(players[sound_name])
|
||||
players.erase(sound_name)
|
||||
|
||||
|
||||
@ -1,7 +1,12 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://src/Utilities/SceneAudio.gd" type="Script" id=1]
|
||||
[ext_resource path="res://assets/sounds/footsteps.ogg" type="AudioStream" id=2]
|
||||
|
||||
[node name="SceneAudio" type="Node"]
|
||||
pause_mode = 2
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="StaticPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 2 )
|
||||
pitch_scale = 1.62
|
||||
|
||||
Loading…
Reference in New Issue
Block a user