Пакетные проблемы с видеоигрой!

ОК, поэтому я делаю еще одну пакетную видеоигру и ее игру в лабиринте, и у меня есть настройки, но мне было интересно, есть ли у них какой-либо способ иметь событие "на столкновении" в script, чтобы вместо этого для определения всех возможных положений, в которых может быть персонаж в игре, я мог бы просто сделать так, чтобы, если ничто не находится перед персонажем, тогда двигайтесь вперед, но если что-то впереди, то воспроизведите этот кадр (оставайтесь в в той же позиции) у меня будет ссылка на мои текущие игры script внизу этой публикации. Скажем, если бы у меня была упрощенная карта, которая выглядела примерно так:

@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=
<p>Файл collision_check.bat - это то, что мне нужно для помощи, мне нужен script, который определит все точки столкновения в карте гивина, а затем сообщит файлу уровня, если персонаж в игре вот-вот ударит. я знаю, что это много, чтобы взять на себя в одном проекте, но мне нужен был вызов!</p> <p> <span> Вот ссылки:</span></p> <p>Это ссылка на мой законченный уровень (уровень один): <a href="http://www.**********.com/?d=1EKWK1RJ" rel="nofollow noreferrer" target="_blank">http://www.**********.com/?d=1EKWK1RJ</a></p> <p>Это ссылка на командный файл, который выступает в качестве главного меню и вызывает файлы уровня: <a href="http://www.**********.com/?d=B4LBKU6T" rel="nofollow noreferrer" target="_blank">http://www.**********.com/?d=B4LBKU6T</a></p> <p>Это ссылка на мой текущий проект (второй уровень): <a href="http://www.**********.com/?d=J35JL2NG" rel="nofollow noreferrer" target="_blank">http://www.**********.com/?d=J35JL2NG</a></p>
2 ответа

Вы можете сделать это и с партией.

Но вы должны попытаться решить это с помощью другого решения.

Уровень должен сохраняться в переменных/массивах. Позиция - это только координата x, y в этом массиве. Тогда вам понадобится только функция отображения для массива. И вы можете "обнаруживать" столкновения, задавая свой массив.

Это должно помочь

@echo off
setlocal EnableDelayedExpansion
set line[0]=#####
set line[1]=# # #
set line[2]=# # #
set line[3]=# # #
set line[4]=# #
set line[5]=#####
set pos.x=3
set pos.y=1
:game
call :display
call :Move
goto :game
:display
cls
set /a xAdd1=pos.x+1
for /L %%n in (0,1,5) do (
 set line=!line[%%n]!
 if %%n==%pos.y% (
 set line=!line:~0,%pos.x%!X!line:~%xAdd1%!
 )
 echo !line!
)
goto :eof


это делает все проще:

BatBox - это внешняя команда, которая позволяет использовать консольную графику, но не только. Это позволяет также пользовательские перерывы, такие как мышь.

Например, BatBox позволяет изменять положение курсора в консоли, изменять цвета в локальной консоли или даже получать пользовательские входы мыши.

http://dos9.org/doc/en/html/batbox.html

licensed under cc by-sa 3.0 with attribution.