Project1
标题:
再也不用一行一行的描绘了!
[打印本页]
作者:
谢谢合作
时间:
2010-7-11 22:16
标题:
再也不用一行一行的描绘了!
本帖最后由 谢谢合作 于 2010-7-12 03:28 编辑
有很大一段信息要描绘(Bitmap)怎么办?
再也不用一行一行的描绘了!
主要用途:
写脚本的时候,需要描绘多行字符,
直接用draw_text_all(x, y, width, height, str, align,change_font)就行了。
(所以,这个脚本对新手
几乎没用
,只是
方便大家写脚本
。)
对于change_font ,系统自动适应放大缩小字体的话,请用true,默认为true。
这里经过改良,已经达到
非常精确
的地步了!
特殊情况您可以关掉此功能。
话说这是我用VX做的、、、
不过XP、VX通用啦。
class Bitmap
#--------------------------------------------------------------------------
# ● 描绘描绘字符串
# x, y, width, height:矩形坐标
# str: 字符串
# align: 对齐方式
# change_font: 自动改变字体大小
#--------------------------------------------------------------------------
def draw_text_all(x, y, width, height, str, align = 0, change_font = true)
str = str + "\n"
# 获取行数(集成:换行标识替换,这里主要用于去掉那个框框)
line_all = 0
loop do
if str[/\n/]
str = str.sub(/\n/){'<hx>'}
line_all += 1
else
break
end
end
# 目标数组化
s = []
loop do
break unless str[/<hx>/]
for i in 0...str.size
if str[i, 4] == "<hx>"
s[s.size] = str[0, i]
str.slice!(0, i+4)
break
end
end
end
# 字体大小自动化
if change_font
size = height * 0.75 / line_all
if size > 96
self.font.size = 96
elsif size < 6
self.font.size = 6
else
self.font.size = size
end
end
# 描绘目标
for j in 0...s.size
draw_text(x, height / line_all.to_f * j + y, width, height / line_all.to_f, s[j], align)
end
end
复制代码
作者:
IamI
时间:
2010-7-11 22:41
= =b 以前帮zh写过一个,多行+适度缩放+各种诡异适应,用了一下计算手段
其实Window_Message才是王道啊……
作者:
trentswd
时间:
2010-7-15 16:34
{:nm_8:}我也写过一个类似的,不过只是自动换行加滚动
{:nm_9:}仔细一看原来这个没有自动换行,只是可以识别换行符
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1