Spiel untersucht und optimiert: KI-Suche, Hintergrund-Threads, Dialog-Helfer
- KI-Vorausschau in zwei Stufen mit Zielvorauswahl (höchstens 4 Ziele je Karte und Angreifer, die 8 besten Erstschritte vertieft): 5 Gegner 2063 ms -> 101 ms, 1 Gegner 160 ms -> 36 ms, alle Kandidaten im Budget; 52:48 gegen die alte Suche - KI rechnet im WorkerThreadPool auf einer Spielkopie, schon während der Wartezeit; längste Bildzeit im Kampf mit 5 Gegnern 108 ms -> 38 ms - Musik wird im Hintergrund erzeugt (Start 185 ms schneller) - Style.overlay und Style.confirm ersetzen vier kopierte Dialoge - Übersetzungen für Abbrechen und Zurücksetzen, Archetypen neu gemessen - tests/perf_probe.gd (Laufzeiten) und tests/frame_probe.tscn (Bildzeiten) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QPgKvy5W9WRNFHjkm5QsHx
This commit is contained in:
@@ -9,6 +9,8 @@ var players: Array[AudioStreamPlayer] = []
|
||||
var volume := 0.8
|
||||
var music_player: AudioStreamPlayer
|
||||
var music_volume := 0.5
|
||||
var music_task := -1 # die Musik wird im Hintergrund berechnet (spart ~150 ms beim Start)
|
||||
var music_box := {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -26,9 +28,23 @@ func _ready() -> void:
|
||||
add_child(p)
|
||||
players.append(p)
|
||||
music_player = AudioStreamPlayer.new()
|
||||
music_player.stream = _music()
|
||||
add_child(music_player)
|
||||
set_music_volume(music_volume)
|
||||
var box := music_box
|
||||
music_task = WorkerThreadPool.add_task(func(): box["wav"] = _music())
|
||||
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
if music_task >= 0 and WorkerThreadPool.is_task_completed(music_task):
|
||||
WorkerThreadPool.wait_for_task_completion(music_task)
|
||||
music_task = -1
|
||||
music_player.stream = music_box.wav
|
||||
set_music_volume(music_volume)
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
if music_task >= 0:
|
||||
WorkerThreadPool.wait_for_task_completion(music_task)
|
||||
music_task = -1
|
||||
|
||||
|
||||
## Leise Hintergrundmusik: Arpeggio über vier Akkorde, als Schleife erzeugt.
|
||||
@@ -67,7 +83,7 @@ func set_music_volume(v: float) -> void:
|
||||
music_player.stop()
|
||||
else:
|
||||
music_player.volume_db = linear_to_db(music_volume * 0.6)
|
||||
if not music_player.playing:
|
||||
if not music_player.playing and music_player.stream != null:
|
||||
music_player.play()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user