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"
|
importer="wav"
|
||||||
type="AudioStreamSample"
|
type="AudioStreamSample"
|
||||||
path="res://.import/boingo.wav-47e169bf3365758b9af8575ec8c64b02.sample"
|
path="res://.import/grass 3 single step 3.wav-2f7d8073200559f99a8e0cf713050fbb.sample"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://assets/sounds/boingo.wav"
|
source_file="res://assets/sounds/grass 3 single step 3.wav"
|
||||||
dest_files=[ "res://.import/boingo.wav-47e169bf3365758b9af8575ec8c64b02.sample" ]
|
dest_files=[ "res://.import/grass 3 single step 3.wav-2f7d8073200559f99a8e0cf713050fbb.sample" ]
|
||||||
|
|
||||||
[params]
|
[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={
|
ui_click={
|
||||||
"deadzone": 0.5,
|
"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]
|
[physics]
|
||||||
|
|
||||||
common/physics_fps=120
|
common/physics_fps=120
|
||||||
|
common/physics_jitter_fix=0.8
|
||||||
2d/thread_model=0
|
2d/thread_model=0
|
||||||
2d/cell_size=100
|
2d/cell_size=100
|
||||||
common/physics_interpolation=true
|
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 left_wall_raycasts = $WallRaycasts/LeftWallRaycast
|
||||||
onready var right_wall_raycasts = $WallRaycasts/RightWallRaycast
|
onready var right_wall_raycasts = $WallRaycasts/RightWallRaycast
|
||||||
onready var effect_player = $BlobbyActionEffects/AnimationPlayer
|
onready var effect_player = $BlobbyActionEffects/AnimationPlayer
|
||||||
|
onready var scene_audio = $SceneAudio
|
||||||
|
|
||||||
onready var death_shader = preload("res://src/Actors/Blobby/DeathShader.tres")
|
onready var death_shader = preload("res://src/Actors/Blobby/DeathShader.tres")
|
||||||
onready var invincible_shader = preload("res://src/Actors/Blobby/InvincibleShader.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 = player_state_machine.init_boost
|
||||||
onready var init_boost_type = player_state_machine.init_boost_type
|
onready var init_boost_type = player_state_machine.init_boost_type
|
||||||
|
|
||||||
|
|
||||||
export var jump_buffer_filled := false
|
export var jump_buffer_filled := false
|
||||||
|
|
||||||
var wall_touch_direction = 1
|
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://assets/effects/blobby-effects-spritesheet.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://src/Actors/Blobby/DeathShader.tres" type="Material" id=2]
|
[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://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/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://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]
|
[sub_resource type="RectangleShape2D" id=2]
|
||||||
extents = Vector2( 14.9127, 5.98593 )
|
extents = Vector2( 14.9127, 5.98593 )
|
||||||
@ -4196,6 +4197,8 @@ text = "Ihre Werbung"
|
|||||||
align = 1
|
align = 1
|
||||||
valign = 1
|
valign = 1
|
||||||
|
|
||||||
|
[node name="SceneAudio" parent="." instance=ExtResource( 9 )]
|
||||||
|
|
||||||
[node name="Listener2D" type="Listener2D" parent="."]
|
[node name="Listener2D" type="Listener2D" parent="."]
|
||||||
current = true
|
current = true
|
||||||
|
|
||||||
@ -4400,11 +4403,9 @@ one_shot = true
|
|||||||
wait_time = 0.809
|
wait_time = 0.809
|
||||||
one_shot = true
|
one_shot = true
|
||||||
|
|
||||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
|
||||||
|
|
||||||
[connection signal="area_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_area_entered"]
|
[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="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="BlobbyStateMachine/JumpBufferTimer" to="BlobbyStateMachine" method="_on_JumpBufferTimer_timeout"]
|
||||||
[connection signal="timeout" from="InvincibilityTimer" to="." method="_on_InvincibilityTimer_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="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"]
|
[node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
||||||
frames = SubResource( 7 )
|
frames = SubResource( 7 )
|
||||||
frame = 9
|
|
||||||
playing = true
|
playing = true
|
||||||
|
|
||||||
[node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"]
|
[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,
|
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):
|
if singleton && players.has(sound_name):
|
||||||
return
|
return
|
||||||
var disposable_player = AudioStreamPlayer.new()
|
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.stream = stream
|
||||||
disposable_player.volume_db = attenuation
|
disposable_player.volume_db = attenuation
|
||||||
disposable_player.bus = bus
|
disposable_player.bus = bus
|
||||||
|
disposable_player.pitch_scale = pitch
|
||||||
disposable_player.play(start_time)
|
disposable_player.play(start_time)
|
||||||
disposable_player.connect("finished", self, "dispose_player", [weakref(disposable_player)])
|
disposable_player.connect("finished", self, "dispose_player", [weakref(disposable_player)])
|
||||||
players[sound_name] = weakref(disposable_player)
|
players[sound_name] = weakref(disposable_player)
|
||||||
@ -23,6 +24,14 @@ func dispose_player(player: WeakRef) -> void:
|
|||||||
if !player.get_ref(): return
|
if !player.get_ref(): return
|
||||||
player.get_ref().queue_free()
|
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):
|
func stop_scene_independent(sound_name: String):
|
||||||
if players.has(sound_name) && players[sound_name].get_ref():
|
if players.has(sound_name) && players[sound_name].get_ref():
|
||||||
dispose_player(players[sound_name])
|
dispose_player(players[sound_name])
|
||||||
|
|||||||
@ -207,9 +207,6 @@ position = Vector2( -24.5, 0 )
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
process_mode = 1
|
process_mode = 1
|
||||||
|
|
||||||
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
|
|
||||||
frame = 1
|
|
||||||
|
|
||||||
[node name="Blobby" parent="." instance=ExtResource( 7 )]
|
[node name="Blobby" parent="." instance=ExtResource( 7 )]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
position = Vector2( -70, 1 )
|
position = Vector2( -70, 1 )
|
||||||
|
|||||||
@ -1034,9 +1034,6 @@ unique_name_in_owner = true
|
|||||||
drag_margin_top = 0.1
|
drag_margin_top = 0.1
|
||||||
drag_margin_bottom = 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 )]
|
[node name="Blobby" parent="." instance=ExtResource( 8 )]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
position = Vector2( -156, -51 )
|
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]
|
[sub_resource type="AudioEffectPitchShift" id=1]
|
||||||
resource_name = "PitchShift"
|
resource_name = "PitchShift"
|
||||||
@ -40,17 +40,8 @@ resource_name = "HighPassFilter"
|
|||||||
resource_name = "LowPassFilter"
|
resource_name = "LowPassFilter"
|
||||||
cutoff_hz = 3000.0
|
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]
|
[resource]
|
||||||
bus/0/volume_db = -6.0206
|
bus/0/volume_db = -10.4576
|
||||||
bus/1/name = "Music"
|
bus/1/name = "Music"
|
||||||
bus/1/solo = false
|
bus/1/solo = false
|
||||||
bus/1/mute = 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/1/enabled = false
|
||||||
bus/3/effect/2/effect = SubResource( 8 )
|
bus/3/effect/2/effect = SubResource( 8 )
|
||||||
bus/3/effect/2/enabled = true
|
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 = false
|
||||||
export var init_boost_type = ""
|
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_player = parent.get_node("%BlobbymationPlayer")
|
||||||
onready var anim_state_playback = parent.get_node("%BlobbymationTree").get("parameters/playback")
|
onready var anim_state_playback = parent.get_node("%BlobbymationTree").get("parameters/playback")
|
||||||
onready var anim_tree = parent.get_node("%BlobbymationTree")
|
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 running_particles = parent.get_node("RunningParticles")
|
||||||
onready var jump_point_particles = parent.get_node("JumpPointParticles")
|
onready var jump_point_particles = parent.get_node("JumpPointParticles")
|
||||||
onready var run_dust_res = load("res://assets/effects/run-dusting.png")
|
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():
|
if !["run", "walk", "idle", "duck"].has(old_state) && parent.is_on_floor():
|
||||||
emit_signal("got_grounded")
|
emit_signal("got_grounded")
|
||||||
GlobalAudio.play_scene_independent("res://assets/sounds/landingMedHard.ogg", "Effects",
|
scene_audio.play_parallel_sound("res://assets/sounds/landingMedHard.ogg",
|
||||||
-15.0, false, 0.10, true)
|
-15.0, true, 1.0, 0.1)
|
||||||
|
|
||||||
|
|
||||||
match new_state:
|
match new_state:
|
||||||
@ -222,6 +226,7 @@ func _enter_state(new_state, old_state):
|
|||||||
anim_state_playback.travel("idleTurn")
|
anim_state_playback.travel("idleTurn")
|
||||||
else:
|
else:
|
||||||
anim_state_playback.travel("walking")
|
anim_state_playback.travel("walking")
|
||||||
|
scene_audio.play_sound(footstep_sound, -3.0, true, 1.6)
|
||||||
states.idle:
|
states.idle:
|
||||||
anim_state_playback.travel("idling")
|
anim_state_playback.travel("idling")
|
||||||
states.duck:
|
states.duck:
|
||||||
@ -237,6 +242,7 @@ func _enter_state(new_state, old_state):
|
|||||||
anim_state_playback.travel("falling")
|
anim_state_playback.travel("falling")
|
||||||
states.run:
|
states.run:
|
||||||
anim_state_playback.travel("running")
|
anim_state_playback.travel("running")
|
||||||
|
scene_audio.play_sound(footstep_sound, -3.0, true, 2.0)
|
||||||
states.wallslide:
|
states.wallslide:
|
||||||
# TODO When the hitbox transforms from wallslide to idle, blobby hangs in the air and that triggers the wallslide on landing
|
# 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):
|
if(old_state != states.idle):
|
||||||
@ -244,9 +250,9 @@ func _enter_state(new_state, old_state):
|
|||||||
|
|
||||||
|
|
||||||
func _exit_state(_old_state, _new_state):
|
func _exit_state(_old_state, _new_state):
|
||||||
|
scene_audio.stop_sound()
|
||||||
if(_old_state == "run"):
|
if(_old_state == "run"):
|
||||||
running_particles.emitting = false
|
running_particles.emitting = false
|
||||||
pass
|
|
||||||
|
|
||||||
func _set_blendspaces_direction(value):
|
func _set_blendspaces_direction(value):
|
||||||
running_particles.texture = run_dust_res if facing == -1 else run_dust_left_res
|
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
|
extends Node
|
||||||
onready var players: Dictionary = {}
|
onready var players: Dictionary = {}
|
||||||
|
onready var static_player: AudioStreamPlayer = $StaticPlayer
|
||||||
var disposable_player: AudioStreamPlayer
|
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):
|
if singleton && players.has(sound_name):
|
||||||
return
|
return
|
||||||
disposable_player = AudioStreamPlayer.new()
|
var disposable_player = AudioStreamPlayer.new()
|
||||||
add_child(disposable_player)
|
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.volume_db = attenuation
|
||||||
disposable_player.bus = bus
|
disposable_player.bus = bus
|
||||||
disposable_player.play()
|
disposable_player.pitch_scale = pitch
|
||||||
disposable_player.connect("finished", self, "dispose_player")
|
disposable_player.play(start_time)
|
||||||
players[sound_name] = disposable_player
|
disposable_player.connect("finished", self, "dispose_player", [weakref(disposable_player)])
|
||||||
|
players[sound_name] = weakref(disposable_player)
|
||||||
|
|
||||||
func dispose_player(player: AudioStreamPlayer = disposable_player) -> void:
|
func dispose_parallel_player(player: WeakRef) -> void:
|
||||||
if player == null: return
|
if !player.get_ref(): return
|
||||||
player.queue_free()
|
player.get_ref().queue_free()
|
||||||
|
|
||||||
func stop_scene_dependent(sound_name: String):
|
func pause_parallel_sound(sound_name: String):
|
||||||
if players.has(sound_name):
|
if players.has(sound_name) && players[sound_name].get_ref():
|
||||||
dispose_player(players[sound_name])
|
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)
|
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://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"]
|
[node name="SceneAudio" type="Node"]
|
||||||
pause_mode = 2
|
pause_mode = 2
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="StaticPlayer" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource( 2 )
|
||||||
|
pitch_scale = 1.62
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user