Race 2 «Верхние ярусы», фаза 1: карта, вентиляторы, ускоряющие полосы, правила общие с Race
- maps/race2/: сцена, race2.gd (ворота со световыми столбами, лазеры, вентиляторы, полосы, срыв, дождь, гул), данные и модель из Blender models/race_02 (раскладка layout.py -> build_race.py -> bake.py; свет пока запечён грубо, небо и музыка — копии Race) - objects/vent.gd, objects/boost_strip.gd + хуки apply_vent()/apply_boost() в player/player.gd (MAX_SPEED и остальная физика не тронуты) - race_rules.gd берёт данные у карты (общий код правил для Race и Race 2) - портал RACE 2 в хабе, пресет экспорта Race2 + export_all.sh, Net.TIMED_MAPS/MAP_TITLES для race2 (RPC не менялись; серверу нужен deploy_server.sh) - тесты: race_game_test.sh с MAP=race2 (бот проводит игроков телепортами), race2_check.txt - README: раздел «Карта Race 2», результаты ботов по веткам Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,11 +2,14 @@
|
||||
# Игровая проверка режима «Гонка» на локальном сервере: 2 клиента-бота (+ третий, который заходит в разгар круга 1,
|
||||
# наблюдает, участвует в круге 2 и выходит посреди него). Окно не открывается.
|
||||
# tools/test/race_game_test.sh [рабочая_папка=/tmp/race_game]
|
||||
# MAP=race2 — то же для карты «Гонка 2» (бот проводит игроков через ворота телепортами: проверяются правила).
|
||||
# Печатает факты и итог «ПРОВЕРКА ПРОЙДЕНА / ПРОВАЛЕНА». Порт сервера 9080 должен быть свободен.
|
||||
# Настоящий рекорд (user://race_best.cfg) не трогается: рекорд ботов идёт в файлы в рабочей папке.
|
||||
set -uo pipefail
|
||||
SRC="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
W="${1:-/tmp/race_game}"
|
||||
MAP="${MAP:-race}"
|
||||
if [ "$MAP" = race2 ]; then SCENE=res://maps/race2/race2.tscn; MARG="--map=race2"; else SCENE=res://maps/race/race.tscn; MARG=""; fi
|
||||
rm -rf "$W"; mkdir -p "$W"
|
||||
"$SRC/tools/test/make_test_server.sh" "$W/server" >/dev/null
|
||||
"$SRC/tools/test/make_test_project.sh" "$W/project" >/dev/null
|
||||
@@ -19,7 +22,7 @@ SERVER=$!
|
||||
sleep 2
|
||||
run() { # имя, остальные аргументы бота
|
||||
local n="$1"; shift
|
||||
timeout 420 godot --headless --path "$W/project" res://maps/race/race.tscn -- --client --race-log --race-best="$W/best_$n.cfg" --profile="$W/prof_$n.cfg" --name="$n" "$@" > "$W/$n.log" 2>&1 &
|
||||
timeout 420 godot --headless --path "$W/project" $SCENE -- --client $MARG --race-log --race-best="$W/best_$n.cfg" --profile="$W/prof_$n.cfg" --name="$n" "$@" > "$W/$n.log" 2>&1 &
|
||||
}
|
||||
run A --expect=2 --rounds=2 --die-at-gate=3
|
||||
PA=$!
|
||||
|
||||
Reference in New Issue
Block a user