extends Node ## Fensterprobe: Kosten von refresh() und längste Bildzeit während KI-Zügen (5 Gegner). var main: Node var max_dt := 0.0 var frames_n := 0 var measuring := false func _ready() -> void: Game.test_seed = 4242 main = load("res://scenes/main.tscn").instantiate() main.save_path = "user://_probe.json" add_child(main) await get_tree().process_frame await get_tree().process_frame var scr: BattleScreen = BattleScreen.new(5) main.show_screen(scr) await get_tree().process_frame await get_tree().process_frame var h: Game.Player = scr.game.human scr.game.buy(h, 0) var t0 := Time.get_ticks_usec() for i in 30: scr.refresh() print("refresh() mit 5 Gegnern und 8 Handkarten: %.2f ms" % ((Time.get_ticks_usec() - t0) / 1000.0 / 30)) scr.ai_delay = 0.2 measuring = true var start := Time.get_ticks_msec() var actions := 0 var last_turn := scr.game.turn while Time.get_ticks_msec() - start < 12000 and scr.game.winner == "": if scr.game.current().is_human and scr.game.current() == h: scr.game.end_turn() scr.after_action() await get_tree().process_frame measuring = false print("längste Bildzeit in 12 s KI-Spiel: %.0f ms (%d Bilder, Zug %d)" % [max_dt * 1000.0, frames_n, scr.game.turn]) DirAccess.remove_absolute(ProjectSettings.globalize_path("user://_probe.json")) get_tree().quit() func _process(delta: float) -> void: if measuring: frames_n += 1 max_dt = maxf(max_dt, delta)