| 赞 | 349 |
| VIP | |
| 好人卡 | |
| 积分 | 299 |
| 经验 | |
| 最后登录 | 2026-10-1 |
| 在线时间 | 2423 小时 |
遠航の猫咪
- 梦石
- 3
- 星屑
- 26947
- 在线时间
- 2423 小时
- 注册时间
- 2005-10-15
- 回帖
- 987

|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
XP的窗口只能改皮肤,默认是不能像VA那样调整色调的,以下脚本可以弥补这个缺憾,二者各有千秋
窗口色相调整的脚本,改动比较少,功能也局限于对已有窗口的色相进行0-360的调整,但它的好处是不破坏XP专有的“窗口背景平铺”功能(此功能在VA以后版本中已废除)。
窗口色调调整的脚本,改动比较多,功能完全仿照VA的RGSS3那样,用RGB三个值来设定窗口背景色调的操作,且它能使用RGBA四个值,但它的坏处是破坏了窗口背景平铺,强制改为VA那样背景拉伸显示。
注:这两个脚本互相冲突,你只能使用一个。
窗口色相调整[pre lang="ruby"]#==============================================================================
# ■ 窗口色相调整 by SailCat
#------------------------------------------------------------------------------
# 本脚本允许调整窗口色相,调用方法为$game_system.windowskin_hue = (0-360).
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ● 取得窗口的色相
#--------------------------------------------------------------------------
def windowskin_hue
# 兼容旧存档
@windowskin_hue.nil? ? 0 : @windowskin_hue
end
#--------------------------------------------------------------------------
# ● 设置窗口的色相
# value : 色相值,超出范围自动修正
#--------------------------------------------------------------------------
def windowskin_hue=(value)
@windowskin_hue = value % 360
end
end
class Window_Base < Window
#--------------------------------------------------------------------------
# ● 初始化对像
# x : 窗口的 X 坐标
# y : 窗口的 Y 坐标
# width : 窗口的宽
# height : 窗口的宽
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super()
@windowskin_name = $game_system.windowskin_name
@windowskin_hue = $game_system.windowskin_hue
self.windowskin = RPG::Cache.windowskin(@windowskin_name, @windowskin_hue)
self.x = x
self.y = y
self.width = width
self.height = height
self.z = 100
end
end
module RPG
module Cache
def self.windowskin(filename, hue = 0)
self.load_bitmap("Graphics/Windowskins/", filename, hue)
end
end
end[/pre]
窗口色调调整
[pre lang="ruby"]#==============================================================================
# ■ 窗口色调调整 by SailCat
#------------------------------------------------------------------------------
# 本脚本允许调整窗口色调,调用方法为$game_system.window_tone = Tone.new(r, g, b, a).
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ● 取得窗口的色调
#--------------------------------------------------------------------------
def window_tone
# 兼容旧存档
@window_tone.nil? ? Tone.new(0, 0, 0, 0) : @window_tone
end
#--------------------------------------------------------------------------
# ● 设置窗口的色调
# value : 色调值
#--------------------------------------------------------------------------
def window_tone=(value)
@window_tone = value.is_a?(Tone) ? value : Tone.new(0, 0, 0, 0)
end
end
class Window_Base < Window
alias sailcat_dispose dispose unless method_defined?(:sailcat_dispose)
alias sailcat_back_opacity= back_opacity= unless method_defined?(:sailcat_back_opacity=)
alias sailcat_back_opacity back_opacity unless method_defined?(:sailcat_back_opacity)
#--------------------------------------------------------------------------
# ● 初始化对像
# x : 窗口的 X 坐标
# y : 窗口的 Y 坐标
# width : 窗口的宽
# height : 窗口的宽
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super()
@windowskin_name = $game_system.windowskin_name
self.windowskin = RPG::Cache.windowskin(@windowskin_name)
@back_sprite = Sprite.new
@back_sprite.bitmap = self.windowskin
@back_sprite.src_rect = Rect.new(0, 0, 128, 128)
@back_sprite.ox = 0
@back_sprite.oy = 0
@back_sprite.z = 99
self.x = x
self.y = y
self.width = width
self.height = height
self.z = 100
set_tone($game_system.window_tone)
self.sailcat_back_opacity = 0
end
def set_tone(tone)
@back_sprite.tone = tone
@back_sprite.opacity = self.sailcat_back_opacity
@back_sprite.zoom_x = self.width / 128.0
@back_sprite.zoom_y = self.height / 128.0
end
def dispose
sailcat_dispose
@back_sprite.dispose
end
def back_opacity
return @back_sprite.opacity
end
def back_opacity=(value)
@back_sprite.opacity = value
end
def x=(x)
super
@back_sprite.x = x
end
def y=(y)
super
@back_sprite.y = y
end
def width=(width)
super
@back_sprite.zoom_x = width / 128.0
end
def height=(height)
super
@back_sprite.zoom_y = height / 128.0
end
def visible=(visible)
super
@back_sprite.visible = visible
end
end
[/pre]
效果图:默认的XP窗口皮肤,色调设置值为和VA一样的(-34,0,68,0)
范例工程:
Window_Tone.zip
(203.35 KB, 下载次数: 26, 售价: 1 星屑)
|
|