我正在制作一个批量选择你自己的冒险游戏,我希望在其中有统计数据来跟踪你在游戏中的表现。我想显示统计数据,但每次有cls
命令时我都必须这样做,并且因为我经常会有这个命令,所以我创建了一个名为:Stats
的块,所以我可以调用它时间我需要它。它运作良好,但统计数据显示后的叙述似乎不再起作用。我想保留:colorEcho
块,因此玩家可以区分对话,叙述和命令来输入选择。关于如何解决这个问题的任何想法?
:Start
::Game goes here.
cls
Echo Please enter your player name.
set /p PlayerName="Player name: "
cls
call :Stats
call :colorEcho 7 "You lay on the cold, hard ground, sleeping away. It's been 1 month since the Virus spread..."
Echo.
call :colorEcho 7 "The sun rises over the horizon, warming up your dirt-caked body."
Echo .
pause
exit
:Stats
call :colorEcho A "Current Health = "
call :colorEcho C " %Health%"
Echo.
call :colorEcho A "Hunger = "
call :colorEcho C " %Food%"
Echo.
call :colorEcho A "Thirst = "
call :colorEcho C " %Water%"
Echo.
call :colorEcho A "Infection = "
call :colorEcho C " %Infection%"
Echo.
call :colorEcho A "Stamina = "
call :colorEcho C " %Stamina%"
Echo.
Echo.
pause
:colorEcho
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i
旁注:我已经定义了所有变量。我确定了。
应该发生什么:
实际发生的事情:
答案 0 :(得分:-2)
你忘了回电话给另一个街区
@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
title Ace
set Health=100
set Food=100
set Water=100
set Infection=100
set Stamina=100
color A
Echo Welcome, %USERNAME% to Ace, a crudely made Choose-Your-Own-Adventure game. You must complete
this in one try.
call :colorEcho A "There is"
call :colorEcho C " no saving"
Echo . Are you ready?
Echo Your options are:
call :colorEcho C "================="
Echo.
Echo 1. Yes
Echo 2. No
call :colorEcho C "================="
Echo.
Echo Please enter the number corresponding to your answer.
set /p Answer1="Enter your choice: "
if "%Answer1%" == "1" goto Start
if "%Answer1%" == "2" goto Quit
:Quit
Echo You have chosen to quit.
pause
exit
:Start
::Game goes here.
cls
Echo Please enter your player name.
set /p PlayerName="Player name: "
cls
call :Stats
Echo.
call :colorEcho C "You lay on the cold, hard ground, sleeping away. It's been 1 month since the Virus
spread"
Echo.
call :colorEcho C "The sun rises over the horizon, warming up your dirt-caked body."
Echo.
pause
exit
:Stats
call :colorEcho A "Current Health = "
call :colorEcho C " %Health%"
Echo.
call :colorEcho A "Hunger = "
call :colorEcho C " %Food%"
Echo.
call :colorEcho A "Thirst = "
call :colorEcho C " %Water%"
Echo.
call :colorEcho A "Infection = "
call :colorEcho C " %Infection%"
Echo.
call :colorEcho A "Stamina = "
call :colorEcho C " %Stamina%"
EXIT /B
Echo.
Echo.
:colorEcho
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i