Das wird nicht sonderlich kompliziert umzusetzen.
Pseudocode:
Delphi-Quellcode:
for I:=0 to Width-1 do
for J:=0 to Height-1 do
begin
Draw(I*TILEWIDTH, J*TILEHEIGHT, TileSets[GroundLayer.TileSet][GroundLayer.Map[I, J]);
Draw(I*TILEWIDTH, J*TILEHEIGHT, TileSets[UpperLayer.TileSet][UpperLayer.Map[I, J]);
end;
Bei der Kollision lädst du einfach und schaust, ob die Spielfigur sich gerade ganz oder teilweise auf einem nicht-begehbaren Feld des Ground- oder Upperlayer befindet.
So in der Art wird es auch im Original-Pokemon-Spiel gemacht und auch z.B. im RPG-Maker.