[ANSI.SYS]Ejemplo de uso de Motor fisico - Portal!!!

Iniciado por BlacKGilgamesH, 8 Septiembre 2010, 23:54 PM

0 Miembros y 1 Visitante están viendo este tema.

BlacKGilgamesH

Hola, bueno, despues de estar trabajando un poco con mi motor físico, he creado algo asi como la base de el juego portal (http://es.wikipedia.org/wiki/Portal_(videojuego)), pero en batch!!, la verdad es que no es muy complejo, y la verdad que es facil entender el codigo.

Se los dejo para que vean uno de los usos de mi motor.

@echo off
mode con cols=80 lines=25
MEM/C | FIND /I "ANSI">NUL || ((
ECHO.DEVICE=%SystemRoot%\System32\ANSI.SYS /X
)>>%SystemRoot%\System32\CONFIG.NT
IF "%~1" NEQ "1" (
START "" %0 1 && EXIT/B 0
) ELSE ( EXIT/B 1
))


set "per=I"
set px=2
set py=2
set "lim=X5Y3,X5Y4,X5Y5,X5Y6,X5Y7,X5Y8,X8Y12,X8Y13,X8Y14,X10Y1,X10Y2,X10Y3,X10Y4,X10Y5,X10Y6,X10Y7,X10Y8,X10Y9,X10Y10,X10Y11,X10Y12,X10Y13,X10Y14,X10Y15,X12Y6,X12Y7,X12Y8,X12Y9,X12Y10,X12Y11,X12Y12,X12Y13,X12Y14,X12Y15,X12Y16,X12Y17,X12Y18,X14Y1,X14Y2,X14Y3,X14Y4,X16Y1,X16Y2,X16Y3,X16Y4,X19Y1,X19Y2,X19Y3,X19Y4,X19Y5,X19Y6,X19Y7,X19Y8,X19Y9,X19Y10,X19Y11,X19Y12,X19Y13,X19Y14,X19Y15,X19Y16,X19Y17,X19Y18"
set llen=19
for %%i in (%lim%) do (
set/a llen1+=1
)
set "porti=X1Y1,X2Y1,X3Y1,X4Y1,X5Y1,X6Y1,X7Y1,X8Y1,X9Y1,X10Y1,X11Y1,X12Y1,X13Y1,X14Y1,X15Y1,X16Y1,X17Y1"
set "portd=X1Y18,X2Y18,X3Y18,X4Y18,X5Y18,X6Y18,X7Y18,X8Y18,X9Y18,X10Y18,X11Y18,X12Y18,X13Y18,X14Y18,X15Y18,X16Y18,X17Y18"
set slt=3
set pory=0
set porx=0
set porya=0
set porxa=0
:init
cls
echo.XXXXXXXXXXXXXXXXXX
echo.X                X
echo.X                X
echo.X                X
echo.X XXXXXX         X
echo.X                X
echo.X                X
echo.X          XXX   X
echo.X                X
echo.XXXXXXXXXXXXXXX  X
echo.X                X
echo.X    XXXXXXXXXXXXX
echo.X                X
echo.XXXX             X
echo.X                X
echo.XXXX             X
echo.X                X
echo.X                X
echo.XXXXXXXXXXXXXXXXXX
call:mov %py% %px% 1 34 %per%
call:mov %pory% %porx% 1 34 Û
call:mov %porya% %porxa% 1 33 Û
choice /cwads0 /t0,01 /n
set/a py+=1
if %errorlevel%==1 (
if %slt%==0 (
set /a py-=3
set slt=99
)
)
if %errorlevel%==2 (
set/a px-=1
set "per=I"
)
if %errorlevel%==3 (
set/a px+=1
set "per=D"
)
if %errorlevel%==4 (
if %per%==I (
for %%a in (%porti%) do (
for /L %%b in (%px%,-1,0) do (
if X%py%Y%%b==%%a (
set porx=%%b
set /a pory=py-1
)
)
)
)
if %per%==D (
for %%a in (%portd%) do (
for /L %%b in (%px%,1,%llen%) do (
if X%py%Y%%b==%%a (
set porxa=%%b
set /a porya=py-1
)
)
)
)
)
set /a ppy=pory+1
set /a ppya=porya+1
if %px%==%porx% (
if %py%==%ppy% (
set /a px=porxa-1
set py=%ppya%
)
)
if %px%==%porxa% (
if %py%==%ppya% (
set /a px=porx-1
set py=%ppy%
)
)
if %px% LEQ 1 (
set/a px+=1
)
set/a l=llen-1
if %px% GEQ %l% (
set/a px-=1
)
if %slt% NEQ 0 (
set/a salto-=1
)
for %%i in (%lim%) do (
if X%py%Y%px% == %%i (
set /a py-=1
set slt=0
)
)
goto:init

:mov
COMMAND /C ECHO.[%1;%2H[0;%3;%4m%5
goto:eof


Cabe decir que es como una BETA del juego, ya que seguire con el proyecto hasta tener un juego "desente".

los controles son.
W:Saltar
A:izquierda
D:Derecha
S:Disparar portal


Saludos.