matriax
Yes, your method of building tilemap is definitely better if buildings are rectangular. With complex shape buildings you might need to check overlapping for every pixel.
What do you mean by sprites with alpha? Your buildings will have transparent parts ("windows") and you want to remove tiles in windows?
You can make windows as another separate invisible sprite.
So first you fill tiles where building sprites are, then erase tiles where window sprites are.
Edit: Made a demo, with complex-shaped windows!
https://www.dropbox.com/s/sywx2gcxi9qsh ... .capx?dl=0
Cheers for the coffee! <img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":)" title="Smile">
Although it's all based on R0j0's original idea, you should be thanking him.