Project1

标题: 识别换行符的draw_text [打印本页]

作者: 无脑之人    时间: 2013-8-31 13:13
标题: 识别换行符的draw_text
本帖最后由 无脑之人 于 2013-10-12 21:59 编辑

简单的一个小功能而已,用在手动换行和自动换行上都很方便,有什么Bug请回复,谢谢合作
  1. class Bitmap
  2.   alias :draw_text2 :draw_text unless defined? :draw_text2
  3.   def draw_text(*args)
  4.     case  args.size
  5.     when 2
  6.       rect = args[0]
  7.       text = args[1].split("\n")
  8.       align = 0
  9.     when 3
  10.       rect = args[0]
  11.       text = args[1].split("\n")
  12.       align = args[2]%3
  13.     when 5
  14.       rect = Rect.new(*(args[0,4]))
  15.       text = args[4].split("\n")
  16.       align = 0
  17.     when 6
  18.       rect = Rect.new(*(args[0,4]))
  19.       text = args[4].split("\n")
  20.       align = args[5]%3
  21.     else
  22.       raise ArgumentError,"错误的参数个数(#{args.size} to 2,3,5,6)."
  23.     end
  24.     return if text.empty?
  25.     wmax = [text.map{|t| self.text_size(t).width}.max,rect.width].min
  26.     h = self.text_size(text[0]).height
  27.     hmax = [h*text.size,rect.height].min
  28.     y = rect.y+(rect.height-hmax)/2
  29.     x = align==0 ? rect.x : align==2 ? rect.x+rect.width-wmax : rect.x+(rect.width-wmax)/2
  30.     text.each_with_index{|t,i|
  31.       draw_text2(x,y+i*h,wmax,h,t,align)
  32.     }
  33.     self
  34.   end
  35. end
复制代码
2013-10-12 更新
  修复了进入物品界面报错的问题【问题原因:空字符串进行split返回空数组】
  修复了覆盖掉所在区域原图像的Bug

@cinderelmini @fzcrllsx @喵呜喵5 @诺亚之城 请及时更新,感谢使用
作者: fzcrllsx    时间: 2013-10-1 17:39
感谢LZ
但是 使用之后第一行文字会被横向压缩
作者: fzcrllsx    时间: 2013-10-1 18:13


试了一下 不是第一行 而是最长的哪一行
如果只有一行 一样会被压缩
作者: 喵呜喵5    时间: 2013-10-12 15:40


作者: 无脑之人    时间: 2013-10-12 17:36
喵呜喵5 发表于 2013-10-12 15:40:43

@喵呜喵5 目测阁下的参数错了,Bitmap#draw_text的第五个参数应该是字符串,阁下填了0?(左对齐可以不用填0的……)
作者: cinderelmini    时间: 2013-10-12 17:46
看起来很实用~
抱走之~顺便验证LS几位的BUG~
作者: 诺亚之城    时间: 2013-10-12 18:03
本帖最后由 诺亚之城 于 2013-10-12 18:10 编辑

RMXP  物品菜单25行会报错,请问这是RMVA的吗?
完全可以正常使用,但不能进入物品栏。
作者: baoer0804    时间: 2014-12-3 22:56
我也遇到了同样的问题,这个要怎么用,直接复制进去就能用吗?
作者: 破碎记忆    时间: 2017-6-15 21:01
C:\Users\Administrator.WQ-20160501NYYU\Desktop
这是什么错误?

捕获.PNG (26.57 KB, 下载次数: 21)

捕获.PNG





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1