设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3247|回复: 2
打印 上一主题 下一主题

[RMXP发布] 再也不用一行一行的描绘了!

[复制链接]

Lv2.观梦者

梦石
0
星屑
265
在线时间
24 小时
注册时间
2008-8-2
帖子
128
跳转到指定楼层
1
发表于 2010-7-11 22:16:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

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通用啦。
  1. class Bitmap
  2.   #--------------------------------------------------------------------------
  3.   # ● 描绘描绘字符串
  4.   #     x, y, width, height:矩形坐标
  5.   #     str:                字符串
  6.   #     align:              对齐方式
  7.   #     change_font:        自动改变字体大小
  8.   #--------------------------------------------------------------------------
  9.   def draw_text_all(x, y, width, height, str, align = 0, change_font = true)
  10.     str = str + "\n"
  11.     # 获取行数(集成:换行标识替换,这里主要用于去掉那个框框)
  12.     line_all = 0
  13.     loop do
  14.       if str[/\n/]
  15.         str = str.sub(/\n/){'<hx>'}
  16.         line_all += 1
  17.       else
  18.         break
  19.       end
  20.     end
  21.     # 目标数组化
  22.     s = []
  23.     loop do
  24.       break unless str[/<hx>/]
  25.       for i in 0...str.size
  26.         if str[i, 4] == "<hx>"
  27.           s[s.size] = str[0, i]
  28.           str.slice!(0, i+4)
  29.           break
  30.         end
  31.       end
  32.     end
  33.     # 字体大小自动化
  34.     if change_font
  35.       size =  height * 0.75 / line_all
  36.       if size > 96
  37.         self.font.size = 96
  38.       elsif size < 6
  39.         self.font.size = 6
  40.       else
  41.         self.font.size = size
  42.       end
  43.     end
  44.     # 描绘目标
  45.     for j in 0...s.size
  46.       draw_text(x, height / line_all.to_f * j + y, width, height / line_all.to_f, s[j], align)
  47.     end
  48.   end
复制代码
GRESK

Lv3.寻梦者

孤独守望

梦石
0
星屑
3132
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

2
发表于 2010-7-11 22:41:34 | 只看该作者
= =b 以前帮zh写过一个,多行+适度缩放+各种诡异适应,用了一下计算手段
其实Window_Message才是王道啊……
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
385 小时
注册时间
2007-7-27
帖子
4106

开拓者

3
发表于 2010-7-15 16:34:58 | 只看该作者
{:nm_8:}我也写过一个类似的,不过只是自动换行加滚动
{:nm_9:}仔细一看原来这个没有自动换行,只是可以识别换行符
吸吸
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-26 00:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表