Z-Odering problem
BlitzPlus Forums/BlitzPlus Programming/Z-Odering problem
| ||
Can someone please help me with this? I am trying to implement z-ordering into my map editor to determine where a tile should be in a map, either in the background or the foreground. I use the left mouse button to place each tile and it`s z-depth is set depending on the current layer I am working on in the editor, either 0 or 1 (background-foreground.) When it comes to the draw rountine I simple want the tiles with a z-depth of 0 (background) to be drawn first and then the tiles with a z-depth of 1 (foreground) to be drawn on the top of the background 0 tiles. When using the following function I can draw the background ok then the foreground ok but when I go back to drawing more background tiles, which should appear behind any placed foreground ones they appear on top. This is not what I want but I cannot seem to find the problem :( Any help would be great. Here`s the function. Phew... Thanks, Jason. Function DrawTiles() For Tile.Tiles=Each Tiles Select Tile\ZOrder Case 0 If MapLayerZeroEnabled=True DrawBlock TileSet,Tile\XPosition,Tile\YPosition,Tile\Number EndIf Case 1 If MapLayerOneEnabled=True DrawBlock TileSet,Tile\XPosition,Tile\YPosition,Tile\Number EndIf End Select Next End Function |
| ||
Are you resetting "MapLayerOneEnable" to False after you've finished drawing? |
| ||
Hi Jason could be your using drawblock? try changing it to drawimage and set any masks using maskimage image,r,g,b. Hope this helps! Mr Brine |
| ||
Or, use two seperate sections in the loop (that's how I'd do it);;;the loop;;; while not keydown(1) gosub backgound_tiles gosub foreground_tiles wend ;;;the gosubs;;; .background_tiles For alltile.tile=each tile if alltile\zorder=0 then drawimage tile,alltile\x,alltile\y,alltile\number endif next return .foreground_tiles For alltile.tile=each tile if alltile\zorder=1 then drawimage tile,alltile\x,alltile\y,alltile\number endif next return Hopefully this should work! |
| ||
Thanks guys, WoeIsMe`s solution worked in the end, cheers :) Jason. |