私はRPGゲームを作っていて、旅行先を選択したこのマップシステムを持っていて、移動ごとに1つのタイルを移動します。一文字の行を一括置換する
私は、プレイヤーがどこにあるのか私のマップ上にどのように表示することができるのだろうと思います。 より具体的には、2つの変数があります。 posX
およびposY
。行posY
の文字「posX
」を、そのプレイヤーを表す新しい文字で置き換えたいとします。
私はvariable:~int,int
を使用して行を編集しようとしましたが、行の長さが違うため動作しませんでした。
EDIT:これは私が下で取り組んでいるコードです。IF !vertical!==!downY!
は決して真実ではないと思います。pause
呼び出しはテスト用です。
:DisplayPlayerPos
set /a vertical=27
set /a horizontal=69
set /a downY=%vertical%-%posY%
FOR /F "tokens=*" %%L IN (SaveGames\Default\World\Color\WorldMap.txt) DO (
set /a vertical=!vertical!-1
IF !vertical!==!downY! (
set left=%%L:~-!%horizontal%-%posX%!
echo !left!
set right=%%L:~!posX! + 1
echo !right!
set newLine=!%left%X%right%!
echo. !newLine!
pause
Exit /b
)
)
pause
Exit /b
Map.txt:
echo.+---------------------------------------------------------------------+ =========// Travel Map //=========
echo.| 8obo.8:.,-!!::;.::P"-8:,.-P':_,./=,.oodoo-** | World: !worldName!
echo.|-+-----+;-+.+++++-+./-::\8-;-8P::P8bP/' | Region: Far West
echo.|,8-+---++++-++++++//`=/---_,`:8b8\Y::8.... SENTO |
echo.|++-;-'8:`--;`-+++-=:-' `+.::\_/\--' X | !travelTarget! Position: !travelX!,!travelY!;
echo.|<[/--"--"-::'''+''= GWEN +`+-U' | Your position: !posX!,!posY!;
echo.|,// `'"+=/Y=--'+\ FOREST |:/'| |
echo.|`8b. ' '|8P\L|,`. /|/ :b |
echo.||\'b \\\++'+++-,+'+'---/ |
echo.|XX8' ``:-.--+/-._.+-_,\ |
echo.| "' /'-+-.``-8+-:dop. |
echo.| '-'++--+-: |
echo.| `-\:"\\'-P>_ |
echo.| Y"\=="' ,-. |
echo.| X THORM / `. _.-|
echo.| ,--. /+-. `---''---|
echo.| ,-' `-------'/ `-+ -`---'|
echo.| ,-' ,. LOGAN _-' `----. |
echo.| ,' ,-' ; RIVER ,-'' `|
echo.| ,--' ,' ; ,---' |
echo.| ,-' ,' ; / |
echo.| -/ +---' ,' ,' |
echo.| / `-------' ,' |
echo.| ,' ,----------' X |
echo.| ,' +-' BENDANIA |
echo.| /,' |
echo.| | ,/ |
echo.| ; /; |
echo.+---------------------------------------------------------------------+
とマップを印刷するには、このスニペット:
:PrintColorFile
set ColorEx=
if /i "%Colors%"=="True" set ColorEx=C
for /F "tokens=*" %%A in (SaveGames\%saveName%\World\Color\%1%ColorEx%.txt) do %%A
Exit /b
このゲームをバッチファイルとして書いている理由は何ですか?あなたが考えることができる他のほとんどの言語を選ぶことは、それをより簡単にするでしょう。 –
個人的には、言語を学ぶのは良い方法だと思うし、それもクールだと思う。どうして? –
私はちょうどあなたがしていることが珍しいと指摘していましたが、あなたは構文と戦うようにイライラする可能性があります...ほとんどのテキストベースのゲームがバッチスクリプトとして書かれていない理由があります。しかし、学習の練習としてはおそらく理想的です。 –