Я делаю еще одну пакетную видеоигру, похожую на игру-лабиринт, и у меня настроены элементы управления, но мне было интересно, есть ли способ включить событие «при столкновении» в сценарии, чтобы вместо отображения из каждой возможной позиции, где мог бы находиться персонаж в игре, я мог бы просто сделать так, чтобы, если перед персонажем ничего не было, то двигалось вперед, но если что-то перед ним, то воспроизводите этот кадр (оставайтесь в той же позиции ) У меня будет ссылка на мой текущий игровой скрипт в нижней части этого поста. Скажем, если бы у меня была упрощенная карта, которая выглядела примерно так:
@echo off
title level 1
cls
:MAIN
echo °°°°°°°ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»°°°°°°°°°°°°°°
echo °°°°°°°º º º X º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º Û º º º°°°°°°°°°°°°°°
echo °°°°°°°ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ°°°°°°°°°°°°°°
goto MAIN
Мой текущий контроль будет:
choice /c awsd /n
IF %errorlevel%==2 goto a2
IF %errorlevel%==1 goto a1
IF %errorlevel%==4 goto a1
IF %errorlevel%==3 goto a1
goto a1
Но проблема этого метода заключается в том, что новая копия этого кода (называемая фреймом) должна будет набираться под ним для каждого пространства символов, которое пользователь заставляет перемещать персонажа в игре. (Опять же, примеры этого приведены в моем текущем файле игры внизу), что я хотел, было что-то вроде:
@echo off
title level 1
cls
:MAIN
echo °°°°°°°ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»°°°°°°°°°°°°°°
echo °°°°°°°º Û º º X º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º°°°°°°°°°°°°°°
echo °°°°°°°ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ°°°°°°°°°°°°°°
:a1
choice /c awsd /n
IF %errorlevel%==2 goto a2check
IF %errorlevel%==1 goto a3
IF %errorlevel%==4 goto a3
IF %errorlevel%==3 goto a3
goto a1
:a2check
set /p collision=<collision_check.bat
IF %collision%==yes goto collision_confirm
IF %collision%==no goto a2
goto MAIN
:collision_confirm
cls
goto MAIN
:a3
cls
:: somehow edit the map so that the character "Û" moves to the position
:: specified by the user in the choice command section.
:: so the new position would be:
echo °°°°°°°ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»°°°°°°°°°°°°°°
echo °°°°°°°º Û º º X º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º º º°°°°°°°°°°°°°°
echo °°°°°°°º º º º°°°°°°°°°°°°°°
echo °°°°°°°ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ°°°°°°°°°°°°°°
goto a3
Мне нужна помощь в файле collision_check.bat, мне нужен скрипт, который бы определял все точки столкновения на карте гивинов, а затем сообщал бы файлу уровней, собирается ли персонаж в игре попасть в него. Я знаю, что это много для одного проекта, но я хотел принять вызов!