From 35e5e8560da7b66bb988d0f1fc1db521e6e59bd7 Mon Sep 17 00:00:00 2001 From: Logan Date: Mon, 15 May 2023 05:47:18 -0600 Subject: Added basketball collision sounds and audio system --- scenes/audio.tscn | 17 +++++++++++++++-- scenes/level.tscn | 9 ++++----- scripts/audio.gd | 22 ++++++++++++++++++++++ scripts/basketball.gd | 3 +++ scripts/mainmenu.gd | 2 +- sound/basketball/01.ogg | Bin 0 -> 9574 bytes sound/basketball/01.ogg.import | 19 +++++++++++++++++++ sound/basketball/02.ogg | Bin 0 -> 9692 bytes sound/basketball/02.ogg.import | 19 +++++++++++++++++++ sound/basketball/03.ogg | Bin 0 -> 9688 bytes sound/basketball/03.ogg.import | 19 +++++++++++++++++++ sound/basketball/04.ogg | Bin 0 -> 9771 bytes sound/basketball/04.ogg.import | 19 +++++++++++++++++++ sound/basketball/05.ogg | Bin 0 -> 9796 bytes sound/basketball/05.ogg.import | 19 +++++++++++++++++++ sound/basketball/06.ogg | Bin 0 -> 9705 bytes sound/basketball/06.ogg.import | 19 +++++++++++++++++++ sound/basketball/07.ogg | Bin 0 -> 9453 bytes sound/basketball/07.ogg.import | 19 +++++++++++++++++++ sound/basketball/08.ogg | Bin 0 -> 9598 bytes sound/basketball/08.ogg.import | 19 +++++++++++++++++++ sound/basketball/09.ogg | Bin 0 -> 9690 bytes sound/basketball/09.ogg.import | 19 +++++++++++++++++++ 23 files changed, 216 insertions(+), 8 deletions(-) create mode 100644 scripts/audio.gd create mode 100644 sound/basketball/01.ogg create mode 100644 sound/basketball/01.ogg.import create mode 100644 sound/basketball/02.ogg create mode 100644 sound/basketball/02.ogg.import create mode 100644 sound/basketball/03.ogg create mode 100644 sound/basketball/03.ogg.import create mode 100644 sound/basketball/04.ogg create mode 100644 sound/basketball/04.ogg.import create mode 100644 sound/basketball/05.ogg create mode 100644 sound/basketball/05.ogg.import create mode 100644 sound/basketball/06.ogg create mode 100644 sound/basketball/06.ogg.import create mode 100644 sound/basketball/07.ogg create mode 100644 sound/basketball/07.ogg.import create mode 100644 sound/basketball/08.ogg create mode 100644 sound/basketball/08.ogg.import create mode 100644 sound/basketball/09.ogg create mode 100644 sound/basketball/09.ogg.import diff --git a/scenes/audio.tscn b/scenes/audio.tscn index 0c43644..2cd2ce1 100644 --- a/scenes/audio.tscn +++ b/scenes/audio.tscn @@ -1,11 +1,24 @@ -[gd_scene load_steps=2 format=3 uid="uid://ckf344kaw3ak6"] +[gd_scene load_steps=4 format=3 uid="uid://b0borf6wisw6m"] [ext_resource type="AudioStream" uid="uid://cx0oukrbd2e4e" path="res://sound/unused_music.ogg" id="1"] +[ext_resource type="Script" path="res://scripts/audio.gd" id="1_tpqc7"] + +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_7mg6e"] +random_pitch = 1.05 +random_volume_offset_db = 0.0 [node name="Audio" type="Node"] process_mode = 3 +script = ExtResource("1_tpqc7") + +[node name="SFX" type="Node" parent="."] + +[node name="Basketball" type="AudioStreamPlayer" parent="SFX"] +stream = SubResource("AudioStreamRandomizer_7mg6e") +max_polyphony = 5 +bus = &"SFX" -[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +[node name="Music" type="AudioStreamPlayer" parent="."] stream = ExtResource("1") volume_db = -20.0 bus = &"Music" diff --git a/scenes/level.tscn b/scenes/level.tscn index 934a8c0..31b8241 100644 --- a/scenes/level.tscn +++ b/scenes/level.tscn @@ -1,11 +1,10 @@ -[gd_scene load_steps=10 format=3 uid="uid://cdtc5xcoq0iun"] +[gd_scene load_steps=9 format=3 uid="uid://dprjenpi8i42x"] [ext_resource type="PackedScene" uid="uid://dbcc3l74gqjjo" path="res://scenes/hoop.tscn" id="2"] [ext_resource type="PackedScene" uid="uid://dnb0otlc0mnc5" path="res://scenes/basketball.tscn" id="3"] [ext_resource type="PackedScene" uid="uid://cixqgc85i5wnn" path="res://scenes/interface.tscn" id="4"] [ext_resource type="Texture2D" uid="uid://f47j73kxq8lf" path="res://textures/court.png" id="5_53mtb"] [ext_resource type="Script" path="res://scripts/camera.gd" id="6"] -[ext_resource type="PackedScene" uid="uid://ckf344kaw3ak6" path="res://scenes/audio.tscn" id="7"] [sub_resource type="WorldBoundaryShape2D" id="1"] @@ -25,7 +24,6 @@ script = ExtResource("6") [node name="Interface" parent="." instance=ExtResource("4")] [node name="Background" type="StaticBody2D" parent="."] -z_index = -1 [node name="FloorCollider" type="CollisionShape2D" parent="Background"] position = Vector2(93, 113) @@ -48,10 +46,11 @@ position = Vector2(142, 34) [node name="Basketball" parent="." instance=ExtResource("3")] position = Vector2(103, 73) - -[node name="Audio" parent="." instance=ExtResource("7")] +max_contacts_reported = 1 +contact_monitor = true [connection signal="score" from="Hoop" to="Interface" method="_on_Hoop_score"] [connection signal="score" from="Hoop" to="Basketball" method="_on_Hoop_score"] +[connection signal="body_entered" from="Basketball" to="Basketball" method="_on_body_entered"] [connection signal="reset" from="Basketball" to="Camera2D" method="_on_Basketball_reset"] [connection signal="reset" from="Basketball" to="Hoop" method="_on_Basketball_reset"] diff --git a/scripts/audio.gd b/scripts/audio.gd new file mode 100644 index 0000000..97f5df6 --- /dev/null +++ b/scripts/audio.gd @@ -0,0 +1,22 @@ +extends Node + +const audible_threshold = 5 +const dropoff_threshold = 50 +const max_vol = 0 +const min_vol = -20 + +func _ready(): + add_streams("res://sound/basketball/", $SFX/Basketball) + +func add_streams(res_directory: String, node: Node): + var index = 0 + for file_name in DirAccess.get_files_at(res_directory): + if file_name.ends_with(".ogg"): + node.stream.add_stream(index, load(res_directory + file_name), 1) + index += 1 + +func impact_noise(velocity: Vector2): + var averaged_velocity = (velocity.x + velocity.y) / 2 + if velocity.y > audible_threshold: + $SFX/Basketball.volume_db = (clamp(averaged_velocity, 0, dropoff_threshold) / dropoff_threshold) * (max_vol - min_vol) + min_vol + $SFX/Basketball.play() diff --git a/scripts/basketball.gd b/scripts/basketball.gd index 7616e14..57c211c 100644 --- a/scripts/basketball.gd +++ b/scripts/basketball.gd @@ -103,3 +103,6 @@ func _on_Hoop_score(): if global_variables.score >= phase_increment[2] and global_variables.score < phase_increment[3]: phase = 2 position_changer() + +func _on_body_entered(_body): + $"/root/Audio".impact_noise(abs($"/root/Node2D/Basketball".get_linear_velocity())) diff --git a/scripts/mainmenu.gd b/scripts/mainmenu.gd index 8bd062a..32fe4f5 100644 --- a/scripts/mainmenu.gd +++ b/scripts/mainmenu.gd @@ -4,7 +4,7 @@ func _ready(): if global_variables.startup: global_variables.startup = false $AnnouncerAudio.play() - $"/root/Audio/AudioStreamPlayer".play() + $"/root/Audio/Music".play() func _on_StartButton_pressed(): get_tree().change_scene_to_file("res://scenes/level.tscn") diff --git a/sound/basketball/01.ogg b/sound/basketball/01.ogg new file mode 100644 index 0000000..745dd8f Binary files /dev/null and b/sound/basketball/01.ogg differ diff --git a/sound/basketball/01.ogg.import b/sound/basketball/01.ogg.import new file mode 100644 index 0000000..e301e7c --- /dev/null +++ b/sound/basketball/01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bpchws6x28ykb" +path="res://.godot/imported/01.ogg-11496b257ea882cf1240a7838f833786.oggvorbisstr" + +[deps] + +source_file="res://sound/basketball/01.ogg" +dest_files=["res://.godot/imported/01.ogg-11496b257ea882cf1240a7838f833786.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/sound/basketball/02.ogg b/sound/basketball/02.ogg new file mode 100644 index 0000000..90b1c26 Binary files /dev/null and b/sound/basketball/02.ogg differ diff --git a/sound/basketball/02.ogg.import b/sound/basketball/02.ogg.import new file mode 100644 index 0000000..701ba14 --- /dev/null +++ b/sound/basketball/02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c4yjac1jx3wv4" +path="res://.godot/imported/02.ogg-d864c9245c14a0afa18778d7de2c5d41.oggvorbisstr" + +[deps] + +source_file="res://sound/basketball/02.ogg" +dest_files=["res://.godot/imported/02.ogg-d864c9245c14a0afa18778d7de2c5d41.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/sound/basketball/03.ogg b/sound/basketball/03.ogg new file mode 100644 index 0000000..d986e5f Binary files /dev/null and b/sound/basketball/03.ogg differ diff --git a/sound/basketball/03.ogg.import b/sound/basketball/03.ogg.import new file mode 100644 index 0000000..56f476d --- /dev/null +++ b/sound/basketball/03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://clx2f1qiq4cx5" +path="res://.godot/imported/03.ogg-c92351942107d6c11c514fff9e9c1c85.oggvorbisstr" + +[deps] + +source_file="res://sound/basketball/03.ogg" +dest_files=["res://.godot/imported/03.ogg-c92351942107d6c11c514fff9e9c1c85.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/sound/basketball/04.ogg b/sound/basketball/04.ogg new file mode 100644 index 0000000..b9e3a41 Binary files /dev/null and b/sound/basketball/04.ogg differ diff --git a/sound/basketball/04.ogg.import b/sound/basketball/04.ogg.import new file mode 100644 index 0000000..95df4f0 --- /dev/null +++ b/sound/basketball/04.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cqq8se05t0pfl" +path="res://.godot/imported/04.ogg-014b2cb0aa6afbdeae8414bd714cffb1.oggvorbisstr" + +[deps] + +source_file="res://sound/basketball/04.ogg" +dest_files=["res://.godot/imported/04.ogg-014b2cb0aa6afbdeae8414bd714cffb1.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/sound/basketball/05.ogg b/sound/basketball/05.ogg new file mode 100644 index 0000000..8b87028 Binary files /dev/null and b/sound/basketball/05.ogg differ diff --git a/sound/basketball/05.ogg.import b/sound/basketball/05.ogg.import new file mode 100644 index 0000000..411795e --- /dev/null +++ b/sound/basketball/05.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b4issj5jkdssr" +path="res://.godot/imported/05.ogg-2b31d6fbeaa5c634bbe19d50d805245c.oggvorbisstr" + +[deps] + +source_file="res://sound/basketball/05.ogg" +dest_files=["res://.godot/imported/05.ogg-2b31d6fbeaa5c634bbe19d50d805245c.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/sound/basketball/06.ogg b/sound/basketball/06.ogg new file mode 100644 index 0000000..3ecb577 Binary files /dev/null and b/sound/basketball/06.ogg differ diff --git a/sound/basketball/06.ogg.import b/sound/basketball/06.ogg.import new file mode 100644 index 0000000..08c53ed --- /dev/null +++ b/sound/basketball/06.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b5imyce6iiaip" +path="res://.godot/imported/06.ogg-a216002a3dba1d7e235692cc594bd29e.oggvorbisstr" + +[deps] + +source_file="res://sound/basketball/06.ogg" +dest_files=["res://.godot/imported/06.ogg-a216002a3dba1d7e235692cc594bd29e.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/sound/basketball/07.ogg b/sound/basketball/07.ogg new file mode 100644 index 0000000..dcb2f68 Binary files /dev/null and b/sound/basketball/07.ogg differ diff --git a/sound/basketball/07.ogg.import b/sound/basketball/07.ogg.import new file mode 100644 index 0000000..58d59c5 --- /dev/null +++ b/sound/basketball/07.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bbeej3kxjjldk" +path="res://.godot/imported/07.ogg-4460defd51a04fcb4cdb3e0a1b34189b.oggvorbisstr" + +[deps] + +source_file="res://sound/basketball/07.ogg" +dest_files=["res://.godot/imported/07.ogg-4460defd51a04fcb4cdb3e0a1b34189b.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/sound/basketball/08.ogg b/sound/basketball/08.ogg new file mode 100644 index 0000000..f21ada4 Binary files /dev/null and b/sound/basketball/08.ogg differ diff --git a/sound/basketball/08.ogg.import b/sound/basketball/08.ogg.import new file mode 100644 index 0000000..13940b7 --- /dev/null +++ b/sound/basketball/08.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://befjnyodubsty" +path="res://.godot/imported/08.ogg-43e82a8e97a7c64b8a71650cbe12d4f1.oggvorbisstr" + +[deps] + +source_file="res://sound/basketball/08.ogg" +dest_files=["res://.godot/imported/08.ogg-43e82a8e97a7c64b8a71650cbe12d4f1.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 diff --git a/sound/basketball/09.ogg b/sound/basketball/09.ogg new file mode 100644 index 0000000..07df49a Binary files /dev/null and b/sound/basketball/09.ogg differ diff --git a/sound/basketball/09.ogg.import b/sound/basketball/09.ogg.import new file mode 100644 index 0000000..38bafbc --- /dev/null +++ b/sound/basketball/09.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cjp5lygo73oyc" +path="res://.godot/imported/09.ogg-0cb0689241dd2b3500c84e4a3d503ee9.oggvorbisstr" + +[deps] + +source_file="res://sound/basketball/09.ogg" +dest_files=["res://.godot/imported/09.ogg-0cb0689241dd2b3500c84e4a3d503ee9.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0.0 +bpm=0.0 +beat_count=0 +bar_beats=4 -- cgit v1.2.3