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

Project1

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

[通用发布] 识别换行符的draw_text

[复制链接]

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
跳转到指定楼层
1
发表于 2013-8-31 13:13:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 无脑之人 于 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 @诺亚之城 请及时更新,感谢使用

评分

参与人数 3星屑 +155 收起 理由
喵呜喵5 + 60 中国好脚本er
诺亚之城 + 45 感谢提醒
cinderelmini + 50 吃起来更不错~~

查看全部评分

我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =

Lv1.梦旅人

梦石
0
星屑
1590
在线时间
21 小时
注册时间
2012-2-17
帖子
2
2
发表于 2013-10-1 17:39:41 | 只看该作者
感谢LZ
但是 使用之后第一行文字会被横向压缩

点评

一般情况下是阁下提供的矩形宽度不足= =试一试加宽一下吧  发表于 2013-10-1 17:57
会有这种事情吗= =麻烦提供一下效果截图和相关部分的代码  发表于 2013-10-1 17:55
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
1590
在线时间
21 小时
注册时间
2012-2-17
帖子
2
3
发表于 2013-10-1 18:13:04 | 只看该作者


试了一下 不是第一行 而是最长的哪一行
如果只有一行 一样会被压缩

点评

刚才测试了一下,没有阁下所说的问题= =请检查阁下提供的矩形,是否小于该字符串的最大宽度  发表于 2013-10-1 18:54
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21681
在线时间
9419 小时
注册时间
2012-6-19
帖子
7119

开拓者短篇九导演组冠军

4
发表于 2013-10-12 15:40:43 | 只看该作者

点评

请及时更新,感谢使用【话说怎么@不到你  发表于 2013-10-12 21:51
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
5
 楼主| 发表于 2013-10-12 17:36:02 手机端发表。 | 只看该作者
喵呜喵5 发表于 2013-10-12 15:40:43

@喵呜喵5 目测阁下的参数错了,Bitmap#draw_text的第五个参数应该是字符串,阁下填了0?(左对齐可以不用填0的……)
来自: Android客户端
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

6
发表于 2013-10-12 17:46:13 | 只看该作者
看起来很实用~
抱走之~顺便验证LS几位的BUG~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
74
在线时间
1313 小时
注册时间
2011-4-28
帖子
1310

短篇八橙光组亚军贵宾

7
发表于 2013-10-12 18:03:05 | 只看该作者
本帖最后由 诺亚之城 于 2013-10-12 18:10 编辑

RMXP  物品菜单25行会报错,请问这是RMVA的吗?
完全可以正常使用,但不能进入物品栏。

点评

对不起在下是一个标准的F12黑,如果阁下执意要修改 在alias后面加上unless defined? :draw_text2  发表于 2013-10-12 19:09
感谢,另外按下键盘的F12也会报错直接退出,虽然这个对游戏进程不会造成影响。  发表于 2013-10-12 18:48
在23行的end下面键入下列代码:return if text.empty? 【主楼已更新】  发表于 2013-10-12 18:16
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1457
在线时间
724 小时
注册时间
2010-9-22
帖子
178
8
发表于 2014-12-3 22:56:43 | 只看该作者
我也遇到了同样的问题,这个要怎么用,直接复制进去就能用吗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
94 小时
注册时间
2016-10-21
帖子
48
9
发表于 2017-6-15 21:01:41 | 只看该作者
C:\Users\Administrator.WQ-20160501NYYU\Desktop
这是什么错误?

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

捕获.PNG
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 02:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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