我正在尝试制作一个简单的基于文本的游戏,并试图设计战斗机制。现在,一旦你进入战斗,你必须输入“1”来攻击或“2”进入战斗菜单。我想改变它,以便你可以按空间进行常规攻击,但仍然可以输入“1”来打开战斗菜单。如果您有兴趣,以下是目前的代码:
"item":{
"alpha":0,
"rules":[
{
"rule":"%scale-value == 1 || %scale-value == 4 || %scale-value == 8 || %scale-value == 16 || %scale-value == 20 || %scale-value == 32 || %scale-value == 40 || %scale-value == 64",
"alpha":1
}
]
},
答案 0 :(得分:0)
将一对"
双引号"
中的值进行比较,如下所示(使用始终,因为值可能为空或可能包含空格字符,特别是用户输入的值 ):
if "%input12%" equ " " goto fighting
if "%input12%" equ "1" goto fightmenu
另一种方法:提前设置默认值(在代码中自我解释):
echo.
echo 1. Continue Attacking ^(default choice, hitting ^<Enter^> suffices^)
echo 2. Return to Fight Menu
echo.
set "input12=1"
set /p "input12=Your entry [default=%input12%]:"
if "%input12%" equ "1" goto fighting
rem superabundant: if "%input12%" equ "2" goto fightmenu
goto fightmenu
在echo 1. ...
命令
<
, >
, (
and )
characters
答案 1 :(得分:0)
在这种类型的应用程序中,最好使用choice
命令而不是set /P
,因为CHOICE只需一键即可继续,无需按Enter键:
choice /C 12 /N /M "Enter: "
if %errorlevel% equ 2 goto fightmenu
if %errorlevel% equ 1 goto fighting
CHOICE命令的缺点是它无法读取空格键。但是,CHOICE优于SET / P的重要优点是在CHOICE命令中你从不会得到错误的输入,所以你可以用这种方式直接使用CHOICE答案:
choice /C 12 /N /M "Enter: "
goto option-%errorlevel%
. . .
:option-1 fighting
. . .
:option-2 fightmenu
. . .