- 注册时间
- 2009-2-26
- 最后登录
- 2009-2-28
③业余
- 积分
- 237
|
怎么让XP实现 以下 图片窗口背景
- #=============================================================================
- #图片窗口背景
- #作者:kissye
- #
- #注意事项
- #使用这个脚本后,Window类里不能再用@skin变量
- #
- #使用方法
- #自己写窗口的时候,令
- #self.skin = Cache.文件夹名字("图片名字")
- #或者在外部更改,令
- #变量 = 窗口.new
- #变量.skin = Cache.文件夹名字("图片名字")
- #
- #更新
- #更改Skin为Sprite_Base子类,于是所有Sprite_Base类属性方法包括动画都可以直接调用
- #不过真的有需要咩......
- #
- #Sprite属性举例,如更改图片透明度设置,令
- #self.skin.opacity = 透明度
- #此外可以设置图片大小,默认与窗口同样大小.
- #self.skin.size(x方向变化, y方向变化)
- #此数字可以为负.例如
- #self.skin.size(-5, -5)
- #那么图片大小比窗口上下左右都小了5像素
- #注意调用方式和我上次写的不一样
- #应该不会再增加什么功能了,反正我自己够用了已经
- #=============================================================================
- class Skin < Sprite_Base
- def initialize(bitmap, window)
- super(window.viewport)
- @sx = 0
- @sy = 0
- @rectbitmap = Rect.new(0, 0, bitmap.width, bitmap.height)
- @rectself = Rect.new(0, 0, window.width, window.height)
- @origwidth = window.width
- @origheight = window.height
- self.x = window.x
- self.yy = window.y
- self.z = window.z - 10
- self.visible = window.visible
- self.openness = window.openness
- @bitmap = bitmap
- drawback
- end
- #---------------------------------------------------------------------------
- def drawback
- unless @rectself.width == 0 or @rectself.height == 0
- if self.bitmap != nil
- self.bitmap.dispose
- end
- self.bitmap = Bitmap.new(@rectself.width, @rectself.height)
- self.bitmap.stretch_blt(@rectself, @bitmap, @rectbitmap)
- end
- end
- #------------------------------------------------------------------------
- def x=(value)
- @origx = value
- value -= @sx
- super(value)
- end
- #------------------------------------------------------------------------
- def yy=(value)
- @origy = value
- value -= @sy
- self.y = value
- end
- #-------------------------------------------------------------------------
- def width=(value)
- @rectself.width = value + @sx * 2
- @origwidth = value
- drawback
- end
- #-------------------------------------------------------------------------
- def height=(value)
- @rectself.height = value + @sy * 2
- @origheight = value
- drawback
- end
- #-------------------------------------------------------------------------
- def dispose
- self.bitmap.dispose
- super
- end
- #---------------------------------------------------------------------------
- def z=(value)
- value -= 10
- super(value)
- end
- #--------------------------------------------------------------------------
- def openness=(value)
- self.zoom_y = value / 255.0
- self.y = (1.0 - self.zoom_y) * @rectself.height / 2 + @origy - @sy
- end
- #--------------------------------------------------------------------------
- def size(x = 0, y = 0)
- @sx = x
- @sy = y
- self.x = @origx
- self.y = @origy - y
- @rectself.width = @origwidth + x * 2
- @rectself.height = @origheight + y * 2
- drawback
- end
- end
- #=========================================================================
- class Window_Base < Window
- #-------------------------------------------------------------
- def dispose
- super
- if @skin != nil
- @skin.dispose
- end
- end
- #------------------------------------------------------------
- def x=(value)
- super
- if @skin != nil
- @skin.x = value
- end
- end
- #-----------------------------------------------------------
- def y=(value)
- super
- if @skin != nil
- @skin.yy = value
- end
- end
- #-----------------------------------------------------------
- def z=(value)
- super
- if @skin != nil
- @skin.z = value
- end
- end
- #----------------------------------------------------------
- def width=(value)
- if @skin != nil
- @skin.width = value
- end
- super
- end
- #----------------------------------------------------------
- def height=(value)
- if @skin != nil
- @skin.height = value
- end
- super
- end
- #--------------------------------------------------------------
- def visible=(value)
- super
- if @skin != nil
- @skin.visible = value
- end
- end
- #------------------------------------------------------------
- def skin=(value)
- self.opacity = 0
- self.back_opacity = 0
- if @skin != nil
- @skin.dispose
- end
- @skin = Skin.new(value, self)
- end
- #------------------------------------------------------------------
- def openness=(value)
- super
- if @skin != nil
- @skin.openness = self.openness
- end
- end
- #-------------------------------------------------------------------
- def viewport=(value)
- super
- if @skin != nil
- @skin.viewport = value
- end
- end
- #---------------------------------------------------------------------
- def skin
- if @skin != nil
- return @skin
- end
- end
- end
复制代码 |
|