Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Sprite
- def mask(mask=nil)
- return false if !self.bitmap
- bitmap=self.bitmap.clone
- if mask.is_a?(Bitmap)
- mbmp=mask
- elsif mask.is_a?(Sprite)
- mbmp=mask.bitmap
- elsif mask.is_a?(String)
- mbmp=BitmapCache.load_bitmap(mask)
- else
- return false
- end
- self.bitmap=Bitmap.new(bitmap.width,bitmap.height)
- mask=Bitmap.new(bitmap.width,bitmap.height)
- mask.stretch_blt(Rect.new(0,0,mask.width,mask.height),mbmp,Rect.new(0,0,mbmp.width,mbmp.height))
- for y in 0...bitmap.height
- for x in 0...bitmap.width
- pixel=mask.get_pixel(x,y)
- color=bitmap.get_pixel(x,y)
- alpha=pixel.alpha
- alpha=color.alpha if color.alpha<pixel.alpha
- self.bitmap.set_pixel(x,y,Color.new(color.red,color.green,color.blue,alpha))
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement