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

Project1

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

[已经解决] 扩充Bitmap类有关正则表达式的使用

[复制链接]

Lv1.梦旅人

薄凉看客

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

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

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

x
脚本如下
测试出现各种效果错误,HPSP数值,时间显示等等
求神触帮忙看下
谢谢

错误截图




一号角色名
\C[5]\N[2]\V[0]\I[010-Head01.png]
  1. =begin

  2. 仿VX
  3. 若str不是字符串对象,则会先调用 to_s 方法转换成字符串

  4. 控制符:
  5. \N[n] 显示ID为n的角色名
  6. \V[n] 显示n号变量值
  7. \C[n] 文字颜色改变(与显示文章同)
  8. \I[name] 显示名为name的图标

  9. 旧功能:
  10. 文字投影
  11. $color_floor  彩色底

  12. =end

  13. $color_floor = true
  14. class Bitmap
  15.   alias draw_yy draw_text unless method_defined? :draw_yy
  16.   def draw_text(*arg)
  17.     if arg[0].is_a?(Rect)
  18.       x,y,width,height,text = \
  19.       arg[0].x, arg[0].y, arg[0].width, arg[0].height, arg[1]
  20.       align = arg[2] == nil ? 0 : arg[2] ; x_copy = x
  21.     else
  22.       x,y,width,height,text = arg[0],arg[1],arg[2],arg[3],arg[4]
  23.       align = arg[5] == nil ? 0 : arg[5] ; x_copy = x
  24.     end
  25.     unless text.is_a?(String)
  26.       text = text.to_s
  27.     end
  28.     color_coo = self.font.color.clone
  29.     if $color_floor
  30.       ca = [[255, 128][rand(2)], [255, 128][rand(2)], [255, 128][rand(2)]]
  31.       for s in 0...width
  32.         self.fill_rect(x + s, y, 1, height, Color.new(
  33.         ca[0], ca[1], ca[2], 255 - s * 320 / width))
  34.       end
  35.     end
  36.     begin
  37.       last_text = text.clone
  38.       text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  39.     end until text == last_text
  40.     text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  41.       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  42.     end
  43.     text.gsub!(/\\\\/) { "\000" }
  44.     text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  45.     text.gsub!(/\\[Ii]\[(.+)\]/) { "\002[#{$1}]" }
  46.     while ((c = text.slice!(/./m)) != nil)
  47.       if c == "\000"
  48.         c = "\\"
  49.       end
  50.       if c == "\001"
  51.         text.sub!(/\[([0-9]+)\]/, "")
  52.         color_coo = draw_color($1.to_i)
  53.         next
  54.       end
  55.       if c == "\002"
  56.         text.sub!(/\[(.+)\]/, "")
  57.         self.blt(x, y, RPG::Cache.icon($1), Rect.new(0, 0, 24, 24))
  58.         x += 24
  59.         next
  60.       end
  61.       self.font.color = Color.new(0, 0, 0)
  62.       draw_yy(x + 1, y, width, height, c, align)
  63.       draw_yy(x - 1, y, width, height, c, align)
  64.       draw_yy(x, y + 1, width, height, c, align)
  65.       draw_yy(x, y - 1, width, height, c, align)
  66.       self.font.color = color_coo
  67.       draw_yy(x, y, width, height, c, align)
  68.       x += self.text_size(c).width
  69.     end
  70.   end
  71.   def draw_color(n)
  72.     case n
  73.     when 0
  74.       return Color.new(255, 255, 255, 255)
  75.     when 1
  76.       return Color.new(128, 128, 255, 255)
  77.     when 2
  78.       return Color.new(255, 128, 128, 255)
  79.     when 3
  80.       return Color.new(128, 255, 128, 255)
  81.     when 4
  82.       return Color.new(128, 255, 255, 255)
  83.     when 5
  84.       return Color.new(255, 128, 255, 255)
  85.     when 6
  86.       return Color.new(255, 255, 128, 255)
  87.     when 7
  88.       return Color.new(192, 192, 192, 255)
  89.     else
  90.       normal_color
  91.     end
  92.   end
  93. end
复制代码

评分

参与人数 1星屑 +35 收起 理由
︶ㄣ牛排ぶ + 35 手动认可奖励

查看全部评分

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42360
在线时间
7600 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

2
发表于 2013-12-26 14:00:17 | 只看该作者
你的方法都是破坏性的,而继续这个字符串对象被你描绘一次之后,由于没有存档存在,所以调用了一次disable_item来重复描绘一次,而第二次的“继续”二字已经被你破坏掉了,所以字符串为空。
其他字也一样,描第二次就会变成空字符。
你全用破坏性方法,后果自负。

点评

一直觉得正则表达式如天书一般的存在 完全看不懂0 0  发表于 2013-12-26 19:45

评分

参与人数 2星屑 +100 收起 理由
︶ㄣ牛排ぶ + 80 认可答案
恐惧剑刃 + 20 这样啊感谢

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 03:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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