You can use separate layers. Have a layer with invisible blocks/sprites on it and mark them as solid so you can't walk through them. These sprites would match up with the bottom of your house/buildings. The actual houses, etc... would be on a layer above the player so that if the player is not running into a solid block, you get the affect that the player is behind the house. Also, do a bit more searching on the forums, I forget which thread but someone had a great way with events to move the houses/buildings to a lower or higher layer depending on where you were in relation to them which gave the same effect.