Eight windows per room and random zombie entry from different windows

This commit is contained in:
enne2
2026-10-13 21:21:17 +02:00
parent 70c82df450
commit fcf298c692
9 changed files with 400 additions and 70 deletions
+44
View File
@@ -0,0 +1,44 @@
extends SceneTree
## Cattura la stanza con le otto finestre: le quattro pareti dal centro, una vista
## d'angolo e un ingresso in corso dalla finestra effettivamente scelta dallo spawn.
func _initialize() -> void:
call_deferred("run_test")
func run_test() -> void:
var world = load("res://scenes/main.tscn").instantiate()
root.add_child(world)
world.player.hp = 100000
world.player.set_physics_process(false)
await create_timer(0.35).timeout # la prima ondata parte in _ready
var chosen: int = world.last_window
var window: Dictionary = world.room.windows[chosen]
# Ingresso in corso: il tween dura 1,2 s salendo verso il davanzale.
world.player.position = Vector3(window.center) + Vector3(window.normal) * -0.5 + Vector3(0, 0.1, 0)
world.player.look_at(Vector3(window.center) + Vector3(0, 1.8, 0))
await create_timer(0.7).timeout
await RenderingServer.frame_post_draw
root.get_texture().get_image().save_png("/tmp/zombie-windows-ingresso.png")
print("SHOT ingresso: finestra %d da %s" % [chosen, window.center])
# Le quattro pareti dal centro.
var views := [
["nord", Vector3(0, 2.2, -9)],
["est", Vector3(9, 2.2, 0)],
["sud", Vector3(0, 2.2, 9)],
["ovest", Vector3(-9, 2.2, 0)],
]
for view in views:
world.player.position = Vector3(0, 0.1, 0)
world.player.look_at(view[1])
await create_timer(0.4).timeout
await RenderingServer.frame_post_draw
root.get_texture().get_image().save_png("/tmp/zombie-windows-%s.png" % view[0])
# Vista d'angolo: due pareti insieme.
world.player.position = Vector3(-7, 0.1, -7)
world.player.look_at(Vector3(6, 1.5, 6))
await create_timer(0.4).timeout
await RenderingServer.frame_post_draw
root.get_texture().get_image().save_png("/tmp/zombie-windows-angolo.png")
print("SHOT: immagini in /tmp/zombie-windows-*.png")
world.queue_free()
await process_frame
quit()