MapGame 2.0 .: By PonyMagic :.

Iniciado por Pony-Magic, 31 Marzo 2009, 17:32 PM

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

Pony-Magic

    -  Para ver el MapGame 1.0 Click Aqui.

.:] MapGame [:.
Mini-Motor de juegos Batch


- Mejoras de la version anterior:

        |-|  Todas las variables empiezan con "." (Punto) de esta manera no se mezcla con las variables que uno este usado.
        |-|  La forma de generar el mapa, es mas rapida, los objetos solidos, salidas, etc. son nombrados 1 sola vez, lo unico que cambia es la posicion del personaje.
        |-|  El Codigo es mas limpio, no hay variables sin usar o cosas así.




- Como llamarlo? :

        |-|  Solid/ + Coordenadas solidas separadas por "." (Punto).
        |-|  Exist/ + Coordenadas de salidas separadas por "." (Punto).
        |-|  PJ/ + Coordenada del persojane.
        |-|  Map/ + Valor1 + "x" + Valor2


  -  Ejemplo:

             Call:MapGAME Solid/y2x2.y3x2.y4x2 Exit/y6x2.y6x3 PJ/y4x4 Map/8x12
                 



        |-|  CODIGO

:MapGAME
:: By PonyMagic
SetLocal EnableDelayedExpansion
For /F "Tokens=2 Delims=/" %%f in ("%1") Do (Set .Sld=%%f&Set .Sld=!.Sld:.=,!)
For /F "Tokens=2 Delims=/" %%f in ("%2") Do (Set .Ext=%%f&Set .Ext=!.Ext:.=,!)
For /F "Tokens=2 Delims=y" %%f in ("%3") Do (Set .PJy=%%f)
For /F "Tokens=2 Delims=x" %%f in ("%.PJy%") Do (Set .PJx=%%f)
For /F "Tokens=1 Delims=x" %%f in ("%.PJy%") Do (Set .PJy=%%f)
For /F "Tokens=2 Delims=/" %%f in ("%3") Do (Set .PJ=%%f)
For /F "Tokens=2 Delims=/" %%f in ("%4") Do (Set .Map=%%f)
For /F "Tokens=1 Delims=x" %%f in ("%.Map%") Do (Set .LmY=%%f)
For /F "Tokens=2 Delims=x" %%f in ("%.Map%") Do (Set .LmX=%%f)
For %%e in (%.Sld%) do (set %%e=Û)
For %%e in (%.Ext%) do (set %%e=)
Set %.PJ%=
For /L %%Y in (1,1,%.LmY%) Do (
For /L %%X in (1,1,%.LmX%) Do (
Set ln.%%Y=!ln.%%Y!!y%%Yx%%X!
)
Echo !ln.%%Y!
)
GoTo:Choice_
:MG_
Set %1=
For /L %%Y in (%2) Do (For /L %%X in (%3) Do (Set ln.%%Y=!ln.%%Y!!y%%Yx%%X!))
For /L %%S in (1,1,%.LmY%) Do (Echo !ln.%%S!)
:Choice_
CHOICE.EXE /c ADSW /n >nul
Set NwPs=
If ["%ErrorLevel%"]==["1"] (
Set /a .Nw=%.PJx%-1
For %%e in (%.Sld%) do (If ["%%e"]==["y%.PJy%x%.Nw%"] Set NwPs=y%.PJy%x%.PJx%)
For %%e in (%.Ext%) do (If ["%%e"]==["y%.PJy%x%.Nw%"] GoTo:EoF)
If NOT Defined NwPs (Set NwPs=y%.PJy%x%.Nw%)
Set /a .PJx=%.PJx%-1
Call:MG_ %NwPs% %.PJy% %.PJx%
)
If ["%ErrorLevel%"]==["2"] (
Set /a .Nw=%.PJx%+1
For %%e in (%.Sld%) do (If ["%%e"]==["y%.PJy%x%.Nw%"] Set NwPs=y%.PJy%x%.PJx%)
For %%e in (%.Ext%) do (If ["%%e"]==["y%.PJy%x%.Nw%"] GoTo:EoF)
If NOT Defined NwPs (Set NwPs=y%.PJy%x%.Nw%)
Set /a .PJx=%.PJx%+1
Call:MG_ %NwPs% %.PJy% %.PJx%
)
If ["%ErrorLevel%"]==["3"] (
Set /a .Nw=%.PJy%+1
For %%e in (%.Sld%) do (If ["%%e"]==["y%.Nw%x%.PJx%"] Set NwPs=y%.PJy%x%.PJx%)
For %%e in (%.Ext%) do (If ["%%e"]==["y%.Nw%x%.PJx%"] GoTo:EoF)
If NOT Defined NwPs (Set NwPs=y%.Nw%x%.PJx%)
Set /a .PJy=%.PJy%+1
Call:MG_ %NwPs% %.PJy% %.PJx%
)
If ["%ErrorLevel%"]==["1"] (
Set /a .Nw=%.PJy%-1
For %%e in (%.Sld%) do (If ["%%e"]==["y%.Nw%x%.PJx%"] Set NwPs=y%.PJy%x%.PJx%)
For %%e in (%.Ext%) do (If ["%%e"]==["y%.Nw%x%.PJx%"] GoTo:EoF)
If NOT Defined NwPs (Set NwPs=y%.Nw%x%.PJx%)
Set /a .PJy=%.PJy%-1
Call:MG_ %NwPs% %.PJy% %.PJx%
)
GoTo:EOF





  -  DESCARGAR EJEMPLO + CHOICE.EXE -



  -  PonyMagic


SmartGenius

Interesante aporte men.....ya habia visto el otro...pero veo que has mejorado......

Esto podria ser para hacer un jueguito tipo laberinto o alguna cosa asi.....jeje...a mi tambien me gusta la idea del desarrollo de juegos en batch.....pa que vean lo que se puede hacer....solo que no he creado un motor completamnete :rolleyes:

Saludos.