蝙蝠游戏 使用set/p添加计时器

Gar*_*nes 5 batch-file

我正在制作一个.bat游戏,当前在输入命令时代码是

set /p command=
Run Code Online (Sandbox Code Playgroud)

我想知道的是,如果你能以某种方式有输入命令的时间限制.例如,如果你打了一个守卫,并且你没有在5秒内发出命令,那么守卫就会攻击.

这不是一件迫切需要的事情,我只是想知道更多关于我所受到的限制,而且我认为无论如何我都知道aawer(答案是你不能)

谢谢

jeb*_*jeb 3

也可以仅通过批处理来完成。

您可以使用 创建第二个线程(在同一窗口中)start /b
如果该线程等待set /p用户输入,则主线程不受影响。
此示例将等待 5 秒用户输入,如果用户输入文本,则会将其移动到文件中,以便第一个线程可以访问它。

@echo off
setlocal EnableDelayedExpansion
if "%1" NEQ "" goto %1

del enter.tmp 2>nul >nul
start /b cmd /c %0 :secondThread

:FirstThread
set n=0
echo Enter Text (5 seconds timeout):

:loop
set /a n+=1
ping -n 2 localhost > nul
if !n! LSS 5 (
    if not exist entER.tmp goto :loop
    < Enter.tmp (
        set /p input=
    )
    echo !input!
) ELSE (
    echo Timeout for input
)

exit /b

:secondThread
set /p var=
> enter.tmp echo !var!
exit /b
Run Code Online (Sandbox Code Playgroud)