Project1
标题:
字体阴影脚本v2.0
[打印本页]
作者:
精灵使者
时间:
2017-10-14 10:48
标题:
字体阴影脚本v2.0
本帖最后由 精灵使者 于 2017-10-14 10:56 编辑
原版参考Sailcat大的字体阴影脚本。
精灵重写部分代码并改良设定部分。
主要更新有:
1.设定部分全部放在模块里进行设定。
2.增添了详细的说明书。
3.如果全局阴影的颜色和字体颜色一样【这往往很不美观】,会自动关闭阴影,等其他颜色的时候会自动恢复。
#==============================================================================
# 本脚本来自rpg.blue,使用和转载请保留此信息
#==============================================================================
#==============================================================================
#字体阴影脚本v 2.0
#原作:Sailcat
#改进:精灵使者
#==============================================================================
=begin
全局阴影设定部分在模块中进行。
默认如果阴影颜色与字体脚本颜色一致的话会自动关闭阴影,不一致的时候阴影会恢复
阴影颜色和方向可以自定义。
使用如下方式自定义阴影和颜色:
draw_text后面加两个参数,第一个是阴影的参数,第二个是阴影的自定义颜色。
这样的话这一段draw_text就会有自定义阴影效果。
=end
#设定部分
module FAY_FONT_SHADOW
SHADOW_ALIGN = 0 #对齐方式
SHADOW_DIRECTION = 3 #字体对齐方向,如果默认为0则关闭全局阴影,需要自定义
#具体定义数字参考小键盘,1左下3右下7左上9右上,默认是3
SHADOW_COLOR = Color.new(0,0,0) #阴影字体默认颜色,默认黑色
SHADOW_COLOR_ALPHA = 0.67 #阴影相对于字体的透明度,1为和透明度一致,默认0.67
SHADOW_DELTA = 1 #阴影相对于字体的偏移量,默认为1像素
end
#正式脚本
class Bitmap
unless $FONT_SHADOW_INIT #防止F12重新描绘,全局脚本只运行一次
alias sailcat_draw_text draw_text unless method_defined? :sailcat_draw_text
def draw_text(p1,p2,p3=FAY_FONT_SHADOW::SHADOW_ALIGN,
p4=FAY_FONT_SHADOW::SHADOW_DIRECTION,p5=nil,
p6=FAY_FONT_SHADOW::SHADOW_ALIGN,p7=FAY_FONT_SHADOW::SHADOW_DIRECTION,p8=nil)
case p1
when Numeric
x = p1
y = p2
width = p3
height = p4
text = p5
align = p6
shadow_direction = p7
shadow_color = p8
if shadow_color.nil?
shadow_color = Color.new(FAY_FONT_SHADOW::SHADOW_COLOR.red,
FAY_FONT_SHADOW::SHADOW_COLOR.green,FAY_FONT_SHADOW::SHADOW_COLOR.blue,
self.font.color.alpha * FAY_FONT_SHADOW::SHADOW_COLOR_ALPHA)
end
when Rect
x = p1.x
y = p1.y
width = p1.width
height = p1.height
text = p2
align = p3
shadow_direction = p4
shadow_color = p5
if shadow_color.nil?
shadow_color = Color.new(FAY_FONT_SHADOW::SHADOW_COLOR.red,
FAY_FONT_SHADOW::SHADOW_COLOR.green,FAY_FONT_SHADOW::SHADOW_COLOR.blue,
self.font.color.alpha * FAY_FONT_SHADOW::SHADOW_COLOR_ALPHA)
end
end
color_temp = self.font.color.clone
if shadow_direction != 0 and color_temp != FAY_FONT_SHADOW::SHADOW_COLOR
self.font.color = shadow_color
case shadow_direction
when 1 #左下
sailcat_draw_text(x-FAY_FONT_SHADOW::SHADOW_DELTA,
y+FAY_FONT_SHADOW::SHADOW_DELTA,width,height,text,align)
when 3 #右下
sailcat_draw_text(x+FAY_FONT_SHADOW::SHADOW_DELTA,
y+FAY_FONT_SHADOW::SHADOW_DELTA,width,height,text,align)
when 7 #左上
sailcat_draw_text(x-FAY_FONT_SHADOW::SHADOW_DELTA,
y-FAY_FONT_SHADOW::SHADOW_DELTA ,width,height,text,align)
when 9 #右上
sailcat_draw_text(x+FAY_FONT_SHADOW::SHADOW_DELTA,
y-FAY_FONT_SHADOW::SHADOW_DELTA,width,height,text,align)
end
self.font.color=color_temp
end
$FONT_SHADOW_INIT = true
sailcat_draw_text(x,y,width,height,text,align)
end
end
end
#==============================================================================
# 本脚本来自rpg.blue,使用和转载请保留此信息
#==============================================================================
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1