update
This commit is contained in:
@@ -17,6 +17,7 @@ signal ready_for_play()
|
||||
var sounds: Dictionary = {}
|
||||
var music_on := true
|
||||
var loaded := false
|
||||
var music_loaded := false
|
||||
var clacks := 0 ## Zähler, damit sich das testen lässt
|
||||
var last_played := "" ## zuletzt gestarteter Klang
|
||||
|
||||
@@ -63,28 +64,32 @@ func _exit_tree() -> void:
|
||||
|
||||
## Läuft im Thread: nur Rechnen, keine Godot-Knoten anfassen.
|
||||
func _build_async() -> void:
|
||||
var pcm: Dictionary = Sfx.build_all()
|
||||
pcm["music"] = Sfx.build_music()
|
||||
call_deferred("_finish_build", pcm)
|
||||
call_deferred("_publish_sfx", Sfx.build_all())
|
||||
call_deferred("_publish_music", Sfx.build_music())
|
||||
|
||||
func _finish_build(pcm: Dictionary) -> void:
|
||||
if _thread != null:
|
||||
_thread.wait_to_finish()
|
||||
_thread = null
|
||||
## Die kurzen Klänge sind schnell fertig - sie gehen zuerst live.
|
||||
func _publish_sfx(pcm: Dictionary) -> void:
|
||||
for name in pcm.keys():
|
||||
var loop: bool = name == "music" or LOOPS.has(name)
|
||||
sounds[name] = Synth.to_stream(pcm[name], loop)
|
||||
_music.stream = sounds["music"]
|
||||
_music.volume_db = MUSIC_DB if music_on else -80.0
|
||||
_music.play()
|
||||
sounds[name] = Synth.to_stream(pcm[name], LOOPS.has(name))
|
||||
_rumble.stream = sounds["rumble"]
|
||||
_rumble.play()
|
||||
_squeal.stream = sounds["squeal"]
|
||||
_squeal.play()
|
||||
loaded = true
|
||||
print("[audio] %d Klänge in %d ms erzeugt" % [sounds.size(), Time.get_ticks_msec() - _t0])
|
||||
print("[audio] %d Klänge in %d ms" % [sounds.size(), Time.get_ticks_msec() - _t0])
|
||||
ready_for_play.emit()
|
||||
|
||||
func _publish_music(pcm: PackedByteArray) -> void:
|
||||
if _thread != null:
|
||||
_thread.wait_to_finish()
|
||||
_thread = null
|
||||
sounds["music"] = Synth.to_stream(pcm, true)
|
||||
_music.stream = sounds["music"]
|
||||
_music.volume_db = MUSIC_DB if music_on else -80.0
|
||||
_music.play()
|
||||
music_loaded = true
|
||||
print("[audio] Musik in %d ms" % (Time.get_ticks_msec() - _t0))
|
||||
|
||||
func toggle_music() -> bool:
|
||||
music_on = not music_on
|
||||
_music.volume_db = MUSIC_DB if music_on else -80.0
|
||||
|
||||
Reference in New Issue
Block a user