1
0
Fork 0

hotswap between sounds

This commit is contained in:
Manu 2021-04-27 00:11:43 +02:00
parent 5c80aa6a80
commit af31c010c6
7 changed files with 76 additions and 10 deletions

View File

@ -1,7 +1,25 @@
[gd_scene load_steps=2 format=2]
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Levels/Level_0.tscn" type="PackedScene" id=1]
[ext_resource path="res://Script/MusicManager.gd" type="Script" id=2]
[ext_resource path="res://Script/Game.gd" type="Script" id=3]
[node name="Root" type="Node2D"]
[node name="Game" type="Node2D"]
script = ExtResource( 3 )
[node name="Node2D2" parent="." instance=ExtResource( 1 )]
[node name="Level" parent="." instance=ExtResource( 1 )]
[node name="MusicManager" type="Node" parent="."]
script = ExtResource( 2 )
[node name="Drum" type="AudioStreamPlayer" parent="MusicManager"]
bus = "drum"
[node name="Bass" type="AudioStreamPlayer" parent="MusicManager"]
bus = "drum"
[node name="Lead" type="AudioStreamPlayer" parent="MusicManager"]
bus = "drum"
[editable path="Level"]
[editable path="Level/Floor"]

View File

@ -92,15 +92,14 @@ frames = ExtResource( 32 )
[node name="Sound" type="AudioStreamPlayer" parent="Stairs" index="1"]
stream = ExtResource( 9 )
bus = "sfx"
[node name="Drum" type="AudioStreamPlayer" parent="." index="8"]
stream = ExtResource( 4 )
autoplay = true
bus = "drum"
[node name="Bass" type="AudioStreamPlayer" parent="." index="9"]
stream = ExtResource( 5 )
autoplay = true
bus = "drum"
[node name="Reservoir" type="AnimatedSprite" parent="." index="10"]
@ -110,7 +109,6 @@ frame = 5
[node name="Lead" type="AudioStreamPlayer" parent="." index="11"]
stream = ExtResource( 6 )
autoplay = true
bus = "drum"
[node name="Controls" type="Sprite" parent="." index="12"]

10
Script/Game.gd Normal file
View File

@ -0,0 +1,10 @@
extends Node2D
class_name Game
func _ready():
new_level($Level)
func new_level(var level :Node):
$MusicManager.new_sounds(level.get_node("Floor/Drum").stream, level.get_node("Floor/Bass").stream, level.get_node("Floor/Lead").stream)

View File

@ -170,7 +170,7 @@ func show_stairs() -> void:
_stairs.frame = 0
_stairs.visible = true
_stairs.play()
($Stairs/Sound as AudioStreamPlayer).play()
$Stairs/Sound.play()
completed = true
func update_reservoir() -> void:
@ -210,6 +210,9 @@ func end_of_level():
downstairs.connect("animation_finished", self, "next_level")
func next_level():
var parent = get_parent()
if next_level:
get_parent().add_child(next_level.instance())
get_parent().remove_child(self)
var new = next_level.instance()
parent.add_child(new)
parent.get_parent().new_level(new)
parent.remove_child(self)

31
Script/MusicManager.gd Normal file
View File

@ -0,0 +1,31 @@
extends Node
onready var players = [
$Drum as AudioStreamPlayer,
$Bass as AudioStreamPlayer,
$Lead as AudioStreamPlayer
]
#var swapping = {
# players = [],
# streams = []
#}
func new_sounds(drum, bass, lead):
var sounds = [drum, bass, lead]
for i in 3:
if players[i].stream != sounds[i]:
var position = players[i].get_playback_position()
players[i].stream = sounds[i]
players[i].play(position)
if not players[i].playing:
players[i].play()
#func _process(delta):
#
# for i in swapping.players.size():
# var player := swapping.players[i] as AudioStreamPlayer
# var stream := swapping.streams[i] as AudioStream
#
# player.volume_db = player.volume_db - delta * 10

View File

@ -11,5 +11,5 @@ dest_files=[ "res://.import/sfx_discovery.mp3-cb4b693e275a1b5cab388f175bd47482.m
[params]
loop=true
loop=false
loop_offset=0

View File

@ -9,6 +9,11 @@
config_version=4
_global_script_classes=[ {
"base": "Node2D",
"class": "Game",
"language": "GDScript",
"path": "res://Script/Game.gd"
}, {
"base": "TileMap",
"class": "Level",
"language": "GDScript",
@ -20,6 +25,7 @@ _global_script_classes=[ {
"path": "res://Script/Player.gd"
} ]
_global_script_class_icons={
"Game": "",
"Level": "",
"Player": ""
}