.:] 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
Código:
: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