赞 | 0 |
VIP | 3 |
好人卡 | 0 |
积分 | 3 |
经验 | 3830 |
最后登录 | 2016-4-14 |
在线时间 | 24 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 270
- 在线时间
- 24 小时
- 注册时间
- 2008-8-2
- 帖子
- 128
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 谢谢合作 于 2010-7-19 17:36 编辑
我上次发布的脚本似乎没有伯乐发现他是千里马,于是本人亲自上阵。
http://rpg.blue/forum.php?mod=vi ... 8&fromuid=61278
本系统同样具有超强的适应能力,请看下图:
缩放窗口
缩放窗口,到达屏幕边缘自动停止缩放。
缩放字体
人类看不清的字也可以显示:
设置:
第41行,设置信息窗口弹出后等待的时间。
第53、54行,设置窗口每次不透明度减少的量。
其他的,自己看。=_=- def print(*args)
- if $print_message == true
- $print_window.dispose
- end
- # 生成系统对像
- $game_system = Game_System.new unless $game_system
- $data_system = load_data("Data/System.rxdata") unless $data_system
- message = args.to_s
- message = message + "\r\n"
- bitmap = Bitmap.new(608,448)
- line_all = 0
- pos1 = 0
- pos2 = 0
- array = []
- loop do
- pos2 = message.index("\n", pos1)
- if pos2
- array.push(bitmap.text_size(message[pos1, pos2]).width)
- pos1 = pos2 + 1
- line_all += 1
- else
- break
- end
- end
- if array.max > 608
- rect_width = 608
- else
- rect_width = array.max
- end
- if line_all > 14
- rect_height = 14 * 32
- else
- rect_height = line_all * 32
- end
- $print_window = Window_Base.new(320 - (rect_width + 32) / 2, 240 - (rect_height + 32) / 2, rect_width + 32, rect_height + 32)
- $print_window.z = 99998 # 这里比鼠标的z值小。
- $print_window.back_opacity = 160
- $print_window.contents = Bitmap.new(rect_width, rect_height)
- $print_window.contents.font.bold = true
- $print_window.contents.font.color = $print_window.crisis_color
- $print_window.contents.draw_text_all(0, 0, rect_width, rect_height, args.to_s, 1)
- for i in 0...120 # 这里设置等待时间
- Graphics.update
- Input.update
- break if Input.trigger?(Input::C)
- end
- $print_message = true
- end
- class << Graphics
- alias old_update update
- def update
- if $print_message == true
- $print_window.opacity -= 12
- $print_window.contents_opacity -= 12
- if $print_window.opacity <= 0
- $print_window.contents.dispose
- $print_window.dispose
- $print_message = false
- end
- end
- old_update
- end
-
- alias old_freeze freeze
- def freeze
- loop do
- break unless $print_message
- update
- end
- old_freeze
- end
- end
复制代码 这个脚本要用到上次我发布的那个脚本:
http://rpg.blue/forum.php?mod=vi ... 8&fromuid=61278- 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
- end
复制代码 |
|