赞 | 0 |
VIP | 3 |
好人卡 | 0 |
积分 | 3 |
经验 | 3830 |
最后登录 | 2016-4-14 |
在线时间 | 24 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 255
- 在线时间
- 24 小时
- 注册时间
- 2008-8-2
- 帖子
- 128
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 谢谢合作 于 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
复制代码 |
|