Sprites, and in fact all 2d nodes have z_index property which determines their draw order. Nodes with larger z_index are drawn over those with smaller z_index.
You can use this property when building a map to set apparent depth of each graphical element. When player sprite walks up-down you can then dynamically adjust its z_index based on vertical position. That way it'd appear the player went from "in front" to "behind" of something, or vice versa.
You just need to cleverly organize z_index values of your map elements and switch player's z_index value at appropriate times.