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

Project1

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

[原创发布] draw_text必备扩展

[复制链接]

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
跳转到指定楼层
1
发表于 2013-12-22 13:45:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 恐惧剑刃 于 2015-7-13 22:28 编辑

非常实用,而且脚本易修改。
另外脚本中不再置字体名、粗体以及斜体等的改变
(因为那玩意性价比太低了 - - !)
  1. #===========================================================================
  2. #  *  draw_text必备扩展
  3. #===========================================================================
  4. =begin

  5. !c[n]   改用n号颜色 *注 颜色在color处自定
  6. !s[n]   改用n号大小
  7. !k[n]   空n像素

  8. v[n]    n号变量

  9. i[n]        描绘id为n的物品的图标
  10. s[n]        描绘id为n的特技的图标
  11. w[n]        描绘id为n的武器的图标
  12. a[n]        描绘id为n的防具的图标

  13. \\n   手动换行(附带自动换行)

  14. =end



  15. class Window_Base < Window
  16.   def dl_draw_text(x, y, text)
  17.     #初始化数据
  18.     color_copy = self.contents.font.color.clone
  19.     text_copy = text
  20.     text_x,text_y = x,y
  21.     #正则
  22.     text_copy.gsub!(/!c\[([0-9]+)\]/) { "\001[#{$1}]" }
  23.     text_copy.gsub!(/!s\[([0-9]+)\]/) { "\002[#{$1}]" }
  24.     text_copy.gsub!(/!k\[([0-9]+)\]/) { "\003[#{$1}]" }
  25.     text_copy.gsub!(/i\[([0-9]+)\]/) { "\020[#{$1}]" }
  26.     text_copy.gsub!(/s\[([0-9]+)\]/) { "\021[#{$1}]" }
  27.     text_copy.gsub!(/w\[([0-9]+)\]/) { "\022[#{$1}]" }
  28.     text_copy.gsub!(/a\[([0-9]+)\]/) { "\023[#{$1}]" }
  29.     text_copy.gsub!(/v\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  30.     text_copy.gsub!(/\\n/) { "\030" }
  31.     # 描绘每一个字
  32.     while ((c = text_copy.slice!(/./m)) != nil)
  33.       #颜色
  34.       if c == "\001"
  35.         text_copy.sub!(/\[([0-9]+)\]/, "")
  36.         self.contents.font.color = text_color($1.to_i)
  37.         next
  38.       end
  39.       #大小
  40.       if c == "\002"
  41.         text_copy.sub!(/\[([0-9]+)\]/, "")
  42.         self.contents.font.size = $1.to_i
  43.         next
  44.       end
  45.       #空像素
  46.       if c == "\003"
  47.         text_copy.sub!(/\[([0-9]+)\]/, "")
  48.         text_x += $1.to_i
  49.         if text_x > self.width - 40
  50.           text_x = 40 + text_x - self.width
  51.           text_y += self.contents.font.size
  52.         end
  53.         next
  54.       end
  55.       #物品
  56.       if c == "\020"
  57.         text_copy.sub!(/\[([0-9]+)\]/, "")
  58.         if !$data_items[$1.to_i].nil? and $data_items[$1.to_i].icon_name != ""
  59.           next if text_x + 24 > self.width - 32
  60.           bitmap = RPG::Cache.icon($data_items[$1.to_i].icon_name)
  61.           self.contents.blt(text_x, text_y, bitmap, Rect.new(0, 0, 24, 24))
  62.           text_x += 24
  63.         end
  64.         next
  65.       end
  66.       #特技
  67.       if c == "\021"
  68.         text_copy.sub!(/\[([0-9]+)\]/, "")
  69.         if !$data_skills[$1.to_i].nil? and $data_skills[$1.to_i].icon_name != ""
  70.           next if text_x + 24 > self.width - 32
  71.           bitmap = RPG::Cache.icon($data_skills[$1.to_i].icon_name)
  72.           self.contents.blt(text_x, text_y, bitmap, Rect.new(0, 0, 24, 24))
  73.           text_x += 24
  74.         end
  75.         next
  76.       end
  77.       #武器
  78.       if c == "\022"
  79.         text_copy.sub!(/\[([0-9]+)\]/, "")
  80.         if !$data_weapons[$1.to_i].nil? and $data_weapons[$1.to_i].icon_name != ""
  81.           next if text_x + 24 > self.width - 32
  82.           bitmap = RPG::Cache.icon($data_weapons[$1.to_i].icon_name)
  83.           self.contents.blt(text_x, text_y, bitmap, Rect.new(0, 0, 24, 24))
  84.           text_x += 24
  85.         end
  86.         next
  87.       end
  88.       #防具
  89.       if c == "\023"
  90.         text_copy.sub!(/\[([0-9]+)\]/, "")
  91.         if !$data_armors[$1.to_i].nil? and $data_armors[$1.to_i].icon_name != ""
  92.           next if text_x + 24 > self.width - 32
  93.           bitmap = RPG::Cache.icon($data_armors[$1.to_i].icon_name)
  94.           self.contents.blt(text_x, text_y, bitmap, Rect.new(0, 0, 24, 24))
  95.           text_x += 24
  96.         end
  97.         next
  98.       end
  99.       #换行
  100.       if c == "\030"
  101.         text_y += self.contents.font.size
  102.         next
  103.       end
  104.       cx = self.contents.text_size(c).width
  105.       self.contents.draw_text(text_x, text_y, cx, self.contents.font.size, c)
  106.       text_x += cx
  107.       #自动换行
  108.       if text_x > self.width - 40
  109.         text_x = 0
  110.         text_y += self.contents.font.size
  111.       end
  112.     end
  113.     self.contents.font.color = color_copy
  114.   end
  115. end
复制代码

评分

参与人数 4星屑 +257 梦石 +1 收起 理由
怪蜀黍 + 200 + 1 发布奖
斯塔萨菲雅 + 7 一直想要的一个效果终于实现了,谢谢楼主。.
天地有正气 + 30 加油!
菜鸟飞呀飞 + 20 我很赞同

查看全部评分

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

2
发表于 2013-12-23 14:44:26 | 只看该作者
能给些示意图效果图吗?

点评

截图已经补充  发表于 2013-12-23 19:51
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
3
发表于 2013-12-23 22:16:50 | 只看该作者
效果真赞,干脆向里面加什么[b][\b]算了XD
不过原版的那种奇葩写法【/的那个】阁下要不要进行识别呢【支持了内嵌表达式就没必要了其实- -】
「打死我都不会向ruby问效率的233333」

点评

感谢 内嵌表达式其实是内部支持的用来代替\v[n] \n[n] 囧  发表于 2013-12-24 03:39
我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
4
 楼主| 发表于 2013-12-26 18:53:59 | 只看该作者
强势更新自顶
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

5
发表于 2013-12-26 20:19:27 | 只看该作者
效果真心华丽呢!
感觉楼主水平提高了不少呢!加油!

点评

感谢!一起加油  发表于 2013-12-26 20:26
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39832
在线时间
7490 小时
注册时间
2009-7-6
帖子
13485

开拓者贵宾

6
发表于 2013-12-27 17:33:53 | 只看该作者
一看你这个就有严重的问题- -文字自动缩放功能不是被吃了么。

点评

那个功能真的有意义吗- -  发表于 2013-12-27 22:10
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
7
 楼主| 发表于 2013-12-27 17:50:27 | 只看该作者
fux2 发表于 2013-12-27 17:33
一看你这个就有严重的问题- -文字自动缩放功能不是被吃了么。

自动缩放?不懂求教
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39832
在线时间
7490 小时
注册时间
2009-7-6
帖子
13485

开拓者贵宾

8
发表于 2013-12-28 11:08:42 | 只看该作者
恋′挂机 发表于 2013-12-27 17:50
自动缩放?不懂求教

你把标题的新游戏三个字改成8个字或者以上,你用原版描绘和自己这个脚本分开试就知道。
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
9
 楼主| 发表于 2013-12-28 11:41:00 | 只看该作者
fux2 发表于 2013-12-28 11:08
你把标题的新游戏三个字改成8个字或者以上,你用原版描绘和自己这个脚本分开试就知道。 ...

已做简单处理
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

10
发表于 2013-12-28 22:07:49 | 只看该作者
这个脚本效果很好但是这后遗症好蛋疼···放了之后还要改坐标···如果不用了还得改回去···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-7 20:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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