sábado, 15 de mayo de 2010

Tutorial batch (Juegos.)

Hola, bueno, les dejo un tuto básico sobre juegos en batch, primero dejo el code, y despues lo explico...



@echo off
if not exist "keyboard.exe" ( goto :nokeybooard)
set pla=0
set plax=0
set plaa=X
:ini
cls
echo.Limite de Y=
set/p limy=
cls
echo.Limite de X=
set/p limx=
set/a limx+=1
set/a limy+=1
set/a limmx=%limx%+1
set/a limmy=%limy%+1
mode con cols=%limmx% lines=%limmy%
:ini1
title X=%plax% Y=%pla%
cls
for /l %%_ in (1,1,%pla%) do (echo.)
FOR /L %%A IN (1,1,%plax%) DO (NUL 2>&1
ren keyboard.dat "keyboard.exe" >nul
echo. Porfavor, reinicie el script.
pause>nul
Goto :Eof


Lo que ya es básico de batch no lo explicare, lo pueden consultar en uno de los tantos manuales que hay aqui.

if not exist "keyboard.exe" ( goto :nokeybooard)

Esto lo que hace es que si no existe el programa "keyboard.exe" valla a la etiqueta ":nokeybooard"

Ahora, lo que hay en esa etiqueta:

:nokeybooard
(
echo n keyboard.dat
echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo rcx
echo 002E
echo w0
echo q
echo.
)>keyboard.dat
type keyboard.dat|debug>NUL 2>&1
del /f/q/a "keyboard.exe">NUL 2>&1
ren keyboard.dat "keyboard.exe" >nul
echo. Porfavor, reinicie el script.
pause>nul
Goto :Eof

Esto lo que hace es crear el archivo "keyboard.dat", lo "Debuggea" y lo renombra a "keyboard.exe".

set pla=0
set plax=0
set plaa=X

Esto lo que hace es crear la variable "pla" que es el "Eje Y" de la consola; tambien crea "plax" que es el eje X y "plaa", que es el caracter que será nuestro personaje.

:ini
cls
echo.Limite de Y=
set/p limy=
cls
echo.Limite de X=
set/p limx=
set/a limx+=1
set/a limy+=1
set/a limmx=%limx%+1
set/a limmy=%limy%+1
mode con cols=%limmx% lines=%limmy%

Ahora, esto lo que hace es pedir hasta que lugar en "Y" y en "X" se puede mover nuestro personaje, y pone el tamaño de la ventana a el del maximo lugar en "X" y "Y" más uno.

:ini1
title X=%plax% Y=%pla%

Esto lo que hace es poner en el titulo las coordenadas actuales de nuestro personaje

cls
for /l %%_ in (1,1,%pla%) do (echo.)
FOR /L %%A IN (1,1,%plax%) DO (



Y el "echo.%plaa%" lo que hace es imprimir a nuestro personaje.


keyboard
if %errorlevel%==80 (
set /a pla+=1
)
if %errorlevel%==72 (
set /a pla-=1
)
if %errorlevel%==77 (
set/a plax+=1
)
if %errorlevel%==75 (
set/a plax-=1
)


Esto lo que hace es llamar a el programa (o "comando") keyboard.exe, que espera hasta que se presione una tecla, para registrar su codigo en la variable %errorlevel%, que es la que se compara en los "if" para ver si es igual a el que los valores preestablecidos de el programa para las "flechas"; por ejemplo, si se presiona la tecla abajo, cuyo valor es "80", se le sumaria uno (1) a la variable %pla%, que con los "for", imprimiria a nuestro personaje un espacio más abajo; lo mismo con los demás valores para las demás teclas. (Los valores de las teclas los pueden conocer con este codigo:

@echo off
:ini1
keyboard
cls
echo Errorlevel:%errorlevel%
goto ini1
Solo que el "Keyboard.exe" ya debe de estar creado en esa misma carpeta)


if %pla% LEQ -1 (
set /a pla+=1
)
if %pla% GEQ %limy% (
set /a pla-=1
)
if %plax% GEQ %limx% (
set/a plax-=1
)
if %plax% LEQ -1 (
set/a plax+=1
)
goto:ini1

Bueno, esto lo que hace es ver si las coordenadas actuales de nuestro personaje, no son más grandes que el limite establecido, de lo contrario le resta uno hasta que sea una unidad menor a el límite que ya se establecio.
(set /a pla+=1, set /a pla=1, set /a plax+=1 y set /a pla-=1)

Y les dejo un link de un video que hise:  VIDEO
Y bueno, eso es todo, espero les alla sido util...

Saludos :grin:

No hay comentarios:

Publicar un comentario