sábado, 15 de mayo de 2010

Tutorial batch (Juegos.)

Hola, bueno, soy nuevo en XTREMOS! asi que no he posteado nada, y mi primer post quiero que sea sobre  juegos en batch, asi que les dejare un codigo para que su "Personaje" se pueda mover con las teclas (las flechitas); primero les 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:  [url]http://www.megavideo.com/?v=RSHL2SND[/url]
Y bueno, eso es todo, espero les alla sido util...

Saludos :grin:



No hay comentarios:

Publicar un comentario