Project1
标题:
RMXP用的Font.shadow[已修BUG]
[打印本页]
作者:
david50407
时间:
2009-1-2 06:19
标题:
RMXP用的Font.shadow[已修BUG]
感謝"后知后觉"大大回報
我修改了下,謝謝
---------------------------------------------
因為VX裡有Font.shadow的功能,使得文字看起來更漂亮
但是XP裡卻沒有,所以就自己寫了個
class Font
#設定預設值
@default_shadow = true
@shadow = @default_shadow
def default_shadow
@default_shadow = true if @default_shadow == nil
return @default_shadow
end
def default_shadow=(shadow)
@default_shadow = shadow
end
def shadow
@shadow = self.default_shadow if @shadow == nil
return @shadow
end
def shadow=(shadow)
@shadow = shadow
end
end
class Bitmap
alias old_draw_text draw_text unless $font_shadow_changed.nil?
$font_shadow_changed = true
def draw_text(*args)
shadow = false
shadow = true if (self.font.shadow == true)
if args.size < 4
args[2] = 0 if args.size == 2
if shadow == true
args[0].x += 1
args[0].y += 1
color = Color.new(self.font.color.red, self.font.color.green, self.font.color.blue, self.font.color.alpha)
self.font.color.set(0, 0, 0, 255)
old_draw_text(args[0], args[1], args[2])
args[0].x -= 1
args[0].y -= 1
self.font.color = color
end
old_draw_text(args[0], args[1], args[2])
else
self.font.shadow = false
args[5] = 0 if args.size == 5
if shadow == true
args[0] += 1
args[1] += 1
color = Color.new(self.font.color.red, self.font.color.green, self.font.color.blue, self.font.color.alpha)
self.font.color.set(0, 0, 0, 255)
old_draw_text(args[0], args[1], args[2], args[3], args[4], args[5])
args[0] -= 1
args[1] -= 1
self.font.color = color
end
old_draw_text(args[0], args[1], args[2], args[3], args[4], args[5])
self.font.shadow = true
end
end
end
复制代码
要插入在最前面,
還有要設定預設值的時候,不能像VX直接用"Font.default_shadow"
要直接在腳本裡改...
不知哪位大大能幫忙修改下
補上圖片:
未啟用:
啟用後:
作者:
orochi2k
时间:
2009-1-2 06:34
偶记的SAILCAT大大写过一个来着
作者:
越前リョーマ
时间:
2009-1-2 07:00
强烈要求截图……
作者:
3nξhα0_lim
时间:
2009-1-2 10:50
提示:
作者被禁止或删除 内容自动屏蔽
作者:
越前リョーマ
时间:
2009-1-2 23:34
看起来的确好看多了,
感谢。{/qiang}
作者:
精灵使者
时间:
2009-1-3 02:09
精灵曾经使用过的脚本就是sailcat大人的脚本,依然是我做XP的核心内容……
作者:
ONEWateR
时间:
2009-1-3 02:19
不错不错。那啥,其它倒是看不错啥,倒是伤害值,让我想起可爱的vx。 {/qiang}
作者:
TERENCE
时间:
2009-1-3 05:52
这种东西特别美好啊啊啊啊....!!!
作者:
后知后觉
时间:
2009-1-3 08:25
看上去貌似是挺不错的……!{/hx}
作者:
swabwind
时间:
2009-1-3 20:32
终于XP也有文字阴影了,支持一个~
{/qiang}
作者:
后知后觉
时间:
2009-1-3 21:38
以下引用
swabwind于2009-1-3 12:32:36
的发言:
终于XP也有文字阴影了,支持一个~
XP早就有文字阴影了吧
只是感觉这个效果更beautiful一些
作者:
后知后觉
时间:
2009-1-5 05:16
额,
发现一个地方报错
正常游戏中还没遇到,
但是在正常游戏中安F12重新开始的话
就会报告错误……
作者:
紫苏
时间:
2009-5-31 15:53
alias draw_text 那里应该是 if 而不是 unless 吧,其实可以把 $font_shadow_changed 的判断放到整个脚本开头,这样按 F12 之后就不会重新解释这段脚本了,有点像头文件的 #pragma once
作者:
精灵使者
时间:
2009-5-31 16:49
以前美兽曾经解决过F12的错误。
其实以前的那个shadow脚本可以自己定义阴影和文字的颜色,会更加漂亮。
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
class Bitmap
unless $OK
alias sailcat_draw_text draw_text unless method_defined? :sailcat_draw_text
def draw_text(p1,p2,p3=0,p4=3,p5=nil,p6=0,p7=3,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(0,0,0,self.font.color.alpha * 0.67)
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(0,0,0,self.font.color.alpha * 0.67)
end
end
color_temp = self.font.color.clone
if shadow_direction != 0
self.font.color = shadow_color
case shadow_direction
when 1
sailcat_draw_text(x-1,y+1,width,height,text,align)
when 3
sailcat_draw_text(x+1,y+1,width,height,text,align)
when 7
sailcat_draw_text(x-1,y-1,width,height,text,align)
when 9
sailcat_draw_text(x+1,y-1,width,height,text,align)
end
self.font.color=color_temp
end
$OK = true
sailcat_draw_text(x,y,width,height,text,align)
end
end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
复制代码
这是精灵使用的那段脚本。直接插入前面即可。
现在一直都是我的游戏的核心脚本的说。
使用方法:
self.contents.draw_text(x, y, w, h, txt,0,align,color)
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1