Project1
标题:
使用”draw_text使用\n换行符换行“脚本按F12错误SystemStackError
[打印本页]
作者:
rt6543ew
时间:
2017-7-13 21:06
标题:
使用”draw_text使用\n换行符换行“脚本按F12错误SystemStackError
错误内容stack level too deep
class Bitmap
alias :draw_text2 :draw_text unless defined? draw_text2
def draw_text(*args)
case args.size
when 2
rect = args[0]
text = args[1].split("\n")
align = 0
when 3
rect = args[0]
text = args[1].split("\n")
align = args[2]%3
when 5
rect = Rect.new(*(args[0,4]))
text = args[4].split("\n")
align = 0
when 6
rect = Rect.new(*(args[0,4]))
text = args[4].split("\n")
align = args[5]%3
else
raise ArgumentError,"错误的参数个数(#{args.size} to 2,3,5,6)."
end
return if text.empty?
wmax = [text.map{|t| self.text_size(t).width}.max,rect.width].min
h = self.text_size(text[0]).height
hmax = [h*text.size,rect.height].min
y = rect.y+(rect.height-hmax)/2
x = align==0 ? rect.x : align==2 ? rect.x+rect.width-wmax : rect.x+(rect.width-wmax)/2
text.each_with_index{|t,i|
draw_text2(x,y+i*h,wmax,h,t,align)
}
self
end
end
复制代码
原发布帖中有人报告过这个错误,作者给出的意见是第二行最后加unless defined?: draw_text2,但这么弄会报错,见
https://rpg.blue/forum.php?mod=v ... &extra=page%3D2
已经按照上头这个帖子的方法修改过,于是又出了这个错
我知道这个错误好像是重定义时方法名重复,但我不知道怎么改。。。。。。
作者:
fux2
时间:
2017-7-13 21:29
alias :draw_text2 :draw_text unless $@
即可
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1