adaptative music

This commit is contained in:
Taevas 2025-02-22 00:19:28 +01:00
parent 25664e36f5
commit 5a768af1f3
9 changed files with 171 additions and 125 deletions

View file

@ -1,50 +1,85 @@
[gd_scene load_steps=2 format=3 uid="uid://ccgnnif026wb4"]
[gd_scene load_steps=4 format=3 uid="uid://ccgnnif026wb4"]
[ext_resource type="PackedScene" uid="uid://dujoplhd35kqg" path="res://level_base.tscn" id="1_ad0pp"]
[ext_resource type="PackedScene" uid="uid://gis4s061n422" path="res://elements/platform.tscn" id="2_g4sgl"]
[sub_resource type="GDScript" id="GDScript_oxyvh"]
script/source = "extends Node
func makeAudioStreamPlayers(music_name: String) -> Array[AudioStreamPlayer]:
var path: String = \"res://music/\" + music_name
var dir: DirAccess = DirAccess.open(path)
var file_paths: Array[String] = []
assert(dir, path + \" is not a valid path!\")
if dir:
dir.list_dir_begin()
var file_name = dir.get_next()
while file_name != \"\":
if !dir.current_is_dir():
if file_name.ends_with(\".ogg\"):
file_paths.push_back(path + \"/\" + file_name)
file_name = dir.get_next()
assert(len(file_paths), path + \" had no .ogg files!\")
var players: Array[AudioStreamPlayer] = []
for file_path in file_paths:
var stream: AudioStreamOggVorbis = AudioStreamOggVorbis.load_from_file(file_path)
stream.loop = true
stream.bpm = 124
var player: AudioStreamPlayer = AudioStreamPlayer.new()
player.stream = stream
player.volume_db = -50
players.push_back(player)
return players
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var players = makeAudioStreamPlayers(\"base\")
for player in players:
add_child(player)
#player.volume_db = 0
for player in players:
player.play()
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
#print($LevelBase/Sphere.position)
pass
func _on_h_slider_value_changed(value: float) -> void:
print(value)
PhysicsServer3D.area_set_param(get_viewport().find_world_3d().space, PhysicsServer3D.AREA_PARAM_GRAVITY, value)
func _unhandled_key_input(ev: InputEvent) -> void:
if ev is InputEventKey:
var k = ev.keycode
if k == KEY_UP or k == KEY_RIGHT or k == KEY_LEFT or k == KEY_DOWN:
var direction = Vector3()
if k == KEY_UP:
direction = Vector3.UP
elif k == KEY_LEFT:
direction = Vector3.LEFT
elif k == KEY_RIGHT:
direction = Vector3.RIGHT
elif k == KEY_DOWN:
direction = Vector3.DOWN
PhysicsServer3D.area_set_param(
get_viewport().find_world_3d().space,
PhysicsServer3D.AREA_PARAM_GRAVITY_VECTOR,
direction
)
print(\"direction is \", direction)
func _on_h_slider_focus_entered() -> void:
$HSlider.release_focus()
pass # Replace with function body.
"
[node name="World" type="Node"]
[node name="Game" type="Node"]
script = SubResource("GDScript_oxyvh")
[node name="LevelBase" parent="." instance=ExtResource("1_ad0pp")]
[node name="Platform" parent="LevelBase" instance=ExtResource("2_g4sgl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -13.7254, 0)
[node name="Platform2" parent="LevelBase" instance=ExtResource("2_g4sgl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42.8526, -13.7254, 0)
[node name="Platform3" parent="LevelBase" instance=ExtResource("2_g4sgl")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 44.7108, -13.7254, 0)
[node name="HSlider" type="HSlider" parent="."]
anchors_preset = -1
anchor_left = 0.2
anchor_top = 0.9
anchor_right = 0.8
anchor_bottom = 1.0
offset_right = -0.00012207
grow_horizontal = 2
grow_vertical = 0
size_flags_horizontal = 4
size_flags_vertical = 1
min_value = 10.0
max_value = 20.0
step = 0.2
value = 10.0
metadata/_edit_use_anchors_ = true
[connection signal="focus_entered" from="HSlider" to="." method="_on_h_slider_focus_entered"]
[connection signal="value_changed" from="HSlider" to="." method="_on_h_slider_value_changed"]
[editable path="LevelBase"]