2

私はいくつかのバッチ プログラミングを学んでいて、ローグライク ゲームを作ることにしました。これは私のお気に入りのタイプのゲームの 1 つです。ローグライクをバッチで作成するための情報を調査しましたが、あまり見つかりませんでした。私が集めた少しから、これは私がこれまでに持っているコードです:

@echo off

rem init starting position
set pos=6

:level
set c1=#
set c2=#
set c3=#
set c4=#

set c5=#
set c6=.
set c7=.
set c8=#

set c9=#
set c10=.
set c11=.
set c12=#

set c13=#
set c14=#
set c15=#
set c16=#

echo %c1%%c2%%c3%%c4%
echo %c5%%c6%%c7%%c8%
echo %c9%%c10%%c11%%c12%
echo %c13%%c14%%c15%%c16%

これは今のところうまくいき、単純な 4x4 の部屋を描画します。私はテスト目的で部屋を 4x4 だけにしたので、単純です。

今、私は残りを書く方法がわからないところにいます。サブルーチンを呼び出して入力 (WASD) を取得する必要があることはわかっていますが、これらのサブルーチンをファイル内で構造化する方法がわかりません。バッチローグライクを構築する方法、プレーヤーを動かすための入力を取得する方法、または何が機能するかについてのアイデアさえも、誰かの助けをいただければ幸いです.

ありがとう。

4

2 に答える 2

3

CHOICEここでは、外部コマンドを使用する場合と使用しない場合のテクニックを紹介します。XcopyINPUT(W、A、S、D)を取得するために使用します。この例では、位置 (画面上のオブジェクトの場所) のテストは行いません。したがって、最初に右に移動してテストします (D)。参考になるのはほんの一例です。

@echo off

:level
set c1=#
set c2=#
set c3=#
set c4=#

set c5=#
set c6=.
set c7=.
set c8=#

set c9=#
set c10=.
set c11=.
set c12=#

set c13=#
set c14=#
set c15=#
set c16=#


@echo off
setlocal enableextensions enabledelayedexpansion

set haut=        
set larg=

:boucle
cls
echo WASD TO MOVE THE CURSOR Q TO QUIT&echo.
for %%a in ( !haut! ) do echo.
call:aff
Set "Key="
For /F "delims=" %%# In ('Xcopy /W "%~f0" "%~f0" 2^>Nul') Do If Not Defined Key Set "Key=%%#"
Set "Key=%Key:~-1%"
if /i %key%==q (exit /b)
if /i %key%==w goto:UP
if /i %key%==s goto:DOWN
if /i %key%==a goto:LEFT
if /i %key%==d goto:RIGHT

:LEFT
set larg=!larg:~0,-1!
goto boucle

:RIGHT
set larg= !larg!
goto boucle

:UP
set haut=!haut:~0,-2!
goto boucle

:DOWN
set haut=!haut! a
goto boucle


:aff
echo !larg!%c1%%c2%%c3%%c4%
echo !larg!%c5%%c6%%c7%%c8%
echo !larg!%c9%%c10%%c11%%c12%
echo !larg!%c13%%c14%%c15%%c16%
于 2013-12-14T23:26:44.397 に答える