ich hab den ganzen kram mal ein wenig verbessert hier ein paar funktionen:
Code (glbasic) Select
//--------------------------------------------------------------------------------------------------
//-------------------------------------------Load Map-------------------------------------------
//--------------------------------------------------------------------------------------------------
FUNCTION LoadMap: lm_name$
// Diese Variablen sind als LOCAL definiert:
// lm_name$
LOCAL zwischenschritt$
DIM map[max_tilesx][max_tilesy][Layer]
FOR l = 0 TO Layer-1
FOR y = 0 TO max_tilesy-1
GETFILE lm_name$, y , zwischenschritt$
FOR x = 0 TO max_tilesx-1
SPLITSTR (zwischenschritt$, split$[], ",")
map[x][y][Select_Layer] = split$[x]
NEXT
NEXT
NEXT
ENDFUNCTION // LOADMAP
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//-------------------------------------------Draw Layer-----------------------------------------
//--------------------------------------------------------------------------------------------------
FUNCTION DrawLayer:
// Diese Variablen sind als LOCAL definiert:
//
FOR l = 0 TO Layer-1
FOR x = 0 TO max_tilesx-1
FOR y = 0 TO max_tilesy-1
SPRITE map[x][y][l],x*tile_size_x,y*tile_size_y
IF SPRCOLL(map[x][y][l], x*tile_size_x,y*tile_size_y, 11998, mx, my) AND b1
PRINT map[x][y][l], 0,410
map[x][y][Select_Layer] = Tilenummer
ENDIF
IF SPRCOLL(map[x][y][l], x*tile_size_x,y*tile_size_y, 11998, mx, my) AND b2
map[x][y][Select_Layer] = 19992
ENDIF
NEXT
NEXT
NEXT
ENDFUNCTION // DRAWLAYER
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//-------------------------------------------ShowTilebar----------------------------------------
//--------------------------------------------------------------------------------------------------
FUNCTION ShowTilebar: choose
// Diese Variablen sind als LOCAL definiert:
// choose
IF choose = 1
SPRITE 12000, 0, 420
SPRITE 12002, 0, 440
SPRITE 12001, 626, 440
IF SPRCOLL (11999, mx, my, 12001, 626, 440) AND b1
move = move+1
ENDIF
IF SPRCOLL (11999, mx, my, 12002, 0, 440) AND b1
move = move-1
IF move < 1 THEN move = 0
ENDIF
IF MOUSEAXIS(2) = 1
Select_Layer = Select_Layer -1
IF Select_Layer < 0 THEN Select_Layer = 0
ENDIF
IF MOUSEAXIS(2) = -1
Select_Layer = Select_Layer +1
IF Select_Layer > 2 THEN Select_Layer = 2
ENDIF
FOR x = 1+move TO 30+move
SPRITE x+(Select_Layer*1000), 10*(x-move)*2, 451
IF SPRCOLL(x+(Select_Layer*1000), 10*(x-move)*2, 451, 11998, mx, my) AND b1
Tilenummer = x+(Select_Layer*1000)
ENDIF
NEXT
ENDIF
PRINT "Layer: "+Select_Layer, 0, 0
ENDFUNCTION // SHOWTILEBAR
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//-------------------------------------------Save Map-------------------------------------------
//--------------------------------------------------------------------------------------------------
FUNCTION SaveMap: datei$
// Diese Variablen sind als LOCAL definiert:
// datei$
FOR y = 0 TO max_tilesy-1
line$ = ""
FOR x = 0 TO max_tilesx-1
line$=line$+FORMAT$(1,0,map[x][y])+","
NEXT
PUTFILE datei$, y, line$
NEXT
ENDFUNCTION // SAVEMAP
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------