use priority queue to queue up tiles and draw them based on z position