- Геймпад: раскладка под паркур и гонки, обзор правым стиком, навигация по меню (A/B/крестовина) - Меню паузы (Esc/Start): выход в хаб, настройки (мышь, стик, FOV, громкость, инверсия), справка по управлению - Хаб 48x32x10 м: колонны, окна с городом, голограмма, лавки; музыка «Local Forecast - Elevator» (Kevin MacLeod, CC-BY) - Тесты: pause_test, pad_menu_test, hub_tour; README обновлён Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
23 lines
2.0 KiB
Plaintext
23 lines
2.0 KiB
Plaintext
# Проверка карты Parkour «по существу» после прохода через портал с настоящими пакетами.
|
|
# Вставь в tools/test/bot.gd ВРЕМЕННОЙ копии проекта (make_test_project.sh) перед строкой print("[%s] t=%4.1f сцена=...")
|
|
# и запусти: godot --headless --main-pack <site>/index.pck -- --client --name=T --pack-url=http://127.0.0.1:<порт>/ --tp=2:0,1,-15
|
|
# Ожидание (после рейтинга: таймер=true итоги=true рейтинг_класс=true): скрипт=true, шейдерных_мешей>=1, небо_панорама=true, музыка_играет=true, лазеров_и_ворот=10.
|
|
# Если в пакете не хватает файла, вместо этого будут false/0 (а имя сцены всё равно «Parkour»).
|
|
|
|
var sc := get_tree().current_scene
|
|
if sc != null and sc.name == "Parkour" and int(t) % 3 == 0:
|
|
var shaded := 0
|
|
for mi in sc.find_children("*", "MeshInstance3D", true, false):
|
|
if mi.get_surface_override_material_count() > 0 and mi.get_surface_override_material(0) is ShaderMaterial:
|
|
shaded += 1
|
|
var music := false
|
|
var areas := 0
|
|
for n in sc.get_children():
|
|
if n is AudioStreamPlayer and n.stream is AudioStreamOggVorbis and n.playing:
|
|
music = true
|
|
if n is Area3D and n.get_child_count() == 2:
|
|
areas += 1
|
|
var env := sc.find_children("*", "WorldEnvironment", false, false)
|
|
var sky_ok: bool = env.size() > 0 and env[0].environment.sky != null and env[0].environment.sky.sky_material is PanoramaSkyMaterial and env[0].environment.sky.sky_material.panorama != null
|
|
print(" ПРОВЕРКА Parkour: скрипт=%s шейдерных_мешей=%d небо_панорама=%s музыка_играет=%s лазеров_и_ворот=%d таймер=%s итоги=%s рейтинг_класс=%s" % [sc.get_script() != null, shaded, sky_ok, music, areas, sc.get("_timer_label") != null, sc.get("_results_panel") != null, LbView.create("parkour") != null])
|