我正在制作一个文本冒险游戏,使用批处理脚本,我想知道是否有一种方法来编程它自动保存在某一时刻。
我问这个问题,因为我最近读到一个youtuber曾经编码他的一个RPG自动保存,虽然他从来没有公开透露。
那么,是否有一种方法可以使批处理RPG/文本冒险发布自动版本?如果是的话,你是如何做到的?
发布于 2013-08-04 01:54:13
有很多,也许几百种语言比MS批处理脚本更适合冒险游戏。尝试Python、TCL、Lua、Java、C#或除批处理之外的任何其他语言。面向对象的语言通常用于奇幻冒险游戏,因为它们具有良好的建模能力。使用持久化框架的语言(如Hibernate)对于自动保存可能很方便。但这往往涉及将数据存储在关系数据库中,这也有利于建模。但不要一次咬太多。
既然你是在心境中尝试一个基于文字的游戏,用一种非常简单的语言。你可能对TCL做得很好。但正如我所说,有许多好的选择。批处理不被认为是其中之一。
发布于 2014-01-07 11:00:37
这实际上是相当简单的,尽管它消耗了大量的空间,这取决于您希望保存多少变量。您希望在与正在运行的批处理文件相同的目录中有另一个批处理文件。此批处理文件可以命名为save.bat、variables.bat或其他任何文件。对于完成的每个操作,您希望它将变量保存到该批处理文件中。例如:
@echo off
call save.bat
:direction
cls
echo.
echo Would you like to
echo 1) go north
echo 2) go south
set /p answer=:
if %answer% equ 1 goto north
if %answer% equ 2 goto south
cls
echo.
echo That command isn't recognized.
echo.
pause
goto direction
:north
echo set /a money=%money%>>save.bat
echo set /a health=%health%>>save.bat
echo set /a mana=%mana%>>save.bat
cls
echo.
echo You head North.
echo.
pause
exit
:south
echo set /a money=%money%>>save.bat
echo set /a health=%health%>>save.bat
echo set /a mana=%mana%>>save.bat
cls
echo.
echo You head South.
echo.
pause
exit您注意到它如何将变量保存到save.bat,然后在游戏开始时调用该变量。>>表示它正在向文件中添加一个新行。如果您只使用单个>,它将删除以前的所有内容,并将变量添加到文件中。尽管您必须在每次操作后保存变量,但这是值得的。如果你想节省空间,你可以这样做:
@echo off
call save.bat
:direction
cls
echo.
echo Would you like to
echo 1) go north
echo 2) go south
set /p answer=:
if %answer% equ 1 goto north
if %answer% equ 2 goto south
cls
echo.
echo That command isn't recognized.
echo.
pause
goto direction
:north
call autosave.bat
cls
echo.
echo You head North.
echo.
pause
exit
:south
call autosave.bat
cls
echo.
echo You head South.
echo.
pause
exit在autosave.bat的内部:
echo set /a money=%money%>>save.bat
echo set /a health=%health%>>save.bat
echo set /a mana=%mana%>>save.bat所以是的,这就是你可以自动保存游戏的方法。
https://stackoverflow.com/questions/18038714
复制相似问题