This is the source code to my Mappy routine.
And a test program :
LOCAL mapX%,mapY%,result%
LIMITFPS -1
result%=Mappy_LoadFile("Level01.FMP",0)
DEBUG "Layer Names : "+Mappy_GetLayerNames$()+"\n"
DEBUG "Map Width : "+Mappy_GetMapWidth()+"\n"
DEBUG "Map Height : "+Mappy_GetMapHeight()+"\n"
DEBUG "Map Depth : "+Mappy_GetMapDepth()+"\n"
DEBUG "Map Author : "+Mappy_GetAuthor$()+"\n"
DEBUG "Mappy Version : "+Mappy_Version()+"\n"
SELECT Mappy_GetMapFormat()
CASE 0
DEBUG "FMP 0.5\n"
CASE 1
DEBUG "FMP 1.0\n"
CASE 2
DEBUG "FMP 1.0 RLE\n"
ENDSELECT
IF Mappy_IsLSB()
DEBUG "Data is in LSB format\n"
ELSE
DEBUG "Data is not in LSB format\n"
ENDIF
DEBUG "Add new layer : "+Mappy_AddLayer(1)+"\n"
DEBUG "Number of layers : "+Mappy_GetNumberOfLayers()+"\n"
DEBUG "Delete a layer : "+Mappy_DeleteLayer(1)+"\n"
DEBUG "Number of layers : "+Mappy_GetNumberOfLayers()+"\n"
DEBUG "Map Block Width : "+Mappy_GetBlockWidth()+"\n"
DEBUG "Map Block Height : "+Mappy_GetBlockHeight()+"\n"
DEBUG "Number Of Blocks : "+Mappy_GetNumberOfBlocks()+"\n"
//loadMappyGraphics()
mapX%=0
mapY%=0
WHILE TRUE
DrawMap(mapX%,mapY%,0,0,640,480)
// DrawMap(mapX%,mapY%,320,0,319,239)
// DrawMap(mapX%,mapY%,0,240,319,239)
// DrawMap(mapX%,mapY%,320,240,319,239)
PRINT "Result : "+result%,0,0
PRINT "Collision : "+Mappy_Collision(29*16,36*16,29*16,37*16),0,16
IF KEY(203)
IF mapX%>0 THEN DEC mapX%
ELSE
IF KEY(205)
INC mapX%
ENDIF
ENDIF
IF KEY(200)
IF mapY%>0 THEN DEC mapY%
ELSE
IF KEY(208)
INC mapY%
ENDIF
ENDIF
SHOWSCREEN
DEBUG "JJ\n"
Mappy_UpdateAnimations()
WEND
END
FUNCTION loadMappyGraphics%:
LOCAL l%
LOCAL name$
LOCAL num$
SETTRANSPARENCY 0
FOR l%=1 TO Mappy_GetNumberOfBlocks()-1
num$="000000"+l%
name$="Media/MappyGraphics/G"+MID$(num$,LEN(num$)-6,6)+".png"
IF DOESFILEEXIST(name$)=FALSE
DEBUG "Not found : "+name$+"\n"
RETURN FALSE
ELSE
LOADSPRITE name$,l%
ENDIF
NEXT
RETURN TRUE
ENDFUNCTION
[attachment deleted by admin]
Wow! This looks like great work :)
Do you have an example map to play with?
These should work fine.
Isometric maps wont work (at least not until a map drawing system is done), because its not an area that I have knowledge about.
[attachment deleted by admin]
Great, I'll be sure to check this out and get back to you on it....
And I tried to give it a shot, but said "mapdefs.h: no such file or directory" then followed by a crazy compiler fit, but I figured that was because of the missing header file.
The mapdefs.h file is included in the other post. It goes in the same place as the project file.
I've included my project file now :)
[attachment deleted by admin]
I receive this error:
"TestMappy.gbas"(44) error : wrong number of aguments : "DrawMap" called with 6 args. Required: 9 to 13
on this line:
DrawMap(mapX%,mapY%,0,0,640,480)
FUNCTION DrawMap: scroll_x%, scroll_y%, sx%, sy%, width%, height%, pIndex%, pX%, pY%, fromLayer%=0, toLayer%=-1, wrap_x% = FALSE, wrap_y% = FALSE
You have to set the parameters without a default value:
scroll_x%,
scroll_y%,
sx%,
sy%,
width%,
height%,
pIndex%,
pX%,
pY%.
cheers
Updated mappy code
[attachment deleted by admin]