Adding damage to buildings.

BlitzMax Forums/BlitzMax Beginners Area/Adding damage to buildings.

My Gorilla remake is shaping up nicely, but only one thing remains: Building damage :(
When a banana hits a building, I would like to create a crator of a certain size where it hit. What would be the best way of doing this?
My buildings are set up in an array of a type:
Type City

	Field Buildings:Building[],sunx:Int
	
	Method Draw(amount:Int)		
		
		SetColor(255,255,0)
		DrawOval(sunx,32,32,32)
	
		For Local i:Int=0 To amount-1								
			Buildings[i].Draw(i,amount)								
		Next
	
	End Method	
	
	Function Create:City(amount:Int,maxheight:Int,minheight:Int)
	
		Local c:City=New City
						
			c.Buildings=New Building[30]											
			
			For Local i:Int=0 To amount-1								
				c.Buildings[i]=New Building												
			Next				
		
		Return c		
	
	End Function
	
End Type

Type Building

	Field height:Int
	
	Method Draw(i:Int,amount:Int)
	
		Local x:Int=i*(640/amount)
		Local y:Int=480-height
	
		SetBlend(SOLIDBLEND)				
				
		DrawRect(x,y,640/amount,height)		
		
		For Local wx:Int=0 To ((640/amount)/10)-1
		
			For Local wy:Int=0 To (height/10)				
		
				SetColor(255,255,0)				
			
				DrawRect(x+3+(wx*10),y+(wy*15)+4,4,7)
			
			Next
		
		Next		
	
	End Method
	
End Type




The only idea I have is to just draw circles the same color as the background over top of the buildings. Then a banana would only explode if it's touching a building and NOT touching one of the circles. I would make another type to hold all the circle objects. The only problem I see with this is, I would like it to be as pixel-perfect as possible and with this method it wouldn't be. Any ideas?

Oh like my artillery game?
http://www.curtastic.com/artilleryblitz/artilleryblitz.htm
Ya, draw the background-colored circle only once onto the building image, instead of to the backbuffer. I don't know the blitzmax equivalent of imagebuffer(). I think you need to use a pixmap.