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

Project1

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

[已经解决] 求助这个脚本问题

[复制链接]

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

跳转到指定楼层
1
发表于 2012-12-22 11:12:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 美丽晨露 于 2012-12-23 21:07 编辑
  1. module OPACITY_66RPG
  2.   def create_screen
  3.     @screen = Spriteset_Map.new
  4.   end
  5.   def dispose_screen
  6.     @screen.dispose
  7.   end
  8. end

  9. class Bitmap
  10.   #--------------------------------------------------------------------------
  11.   # ● 矩形をグラデーション表示
  12.   #     color1 : スタートカラー
  13.   #     color2 : エンドカラー
  14.   #     align  :  0:横にグラデーション
  15.   #               1:縦にグラデーション
  16.   #               2:斜めにグラデーション(激重につき注意)
  17.   #--------------------------------------------------------------------------
  18.   def gradation_rect(x, y, width, height, color1, color2, align = 0)
  19.     if align == 0
  20.       for i in x...x + width
  21.         red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
  22.         green = color1.green +
  23.                 (color2.green - color1.green) * (i - x) / (width - 1)
  24.         blue  = color1.blue +
  25.                 (color2.blue - color1.blue) * (i - x) / (width - 1)
  26.         alpha = color1.alpha +
  27.                 (color2.alpha - color1.alpha) * (i - x) / (width - 1)
  28.         color = Color.new(red, green, blue, alpha)
  29.         fill_rect(i, y, 1, height, color)
  30.       end
  31.     elsif align == 1
  32.       for i in y...y + height
  33.         red   = color1.red +
  34.                 (color2.red - color1.red) * (i - y) / (height - 1)
  35.         green = color1.green +
  36.                 (color2.green - color1.green) * (i - y) / (height - 1)
  37.         blue  = color1.blue +
  38.                 (color2.blue - color1.blue) * (i - y) / (height - 1)
  39.         alpha = color1.alpha +
  40.                 (color2.alpha - color1.alpha) * (i - y) / (height - 1)
  41.         color = Color.new(red, green, blue, alpha)
  42.         fill_rect(x, i, width, 1, color)
  43.       end
  44.     elsif align == 2
  45.       for i in x...x + width
  46.         for j in y...y + height
  47.           red   = color1.red + (color2.red - color1.red) *
  48.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  49.           green = color1.green + (color2.green - color1.green) *
  50.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  51.           blue  = color1.blue + (color2.blue - color1.blue) *
  52.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  53.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  54.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  55.           color = Color.new(red, green, blue, alpha)
  56.           set_pixel(i, j, color)
  57.         end
  58.       end
  59.     elsif align == 3
  60.       for i in x...x + width
  61.         for j in y...y + height
  62.           red   = color1.red + (color2.red - color1.red) *
  63.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  64.           green = color1.green + (color2.green - color1.green) *
  65.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  66.           blue  = color1.blue + (color2.blue - color1.blue) *
  67.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  68.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  69.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  70.           color = Color.new(red, green, blue, alpha)
  71.           set_pixel(i, j, color)
  72.         end
  73.       end
  74.     end
  75.   end
  76. end
  77. #--------------------------------------------------------------------------
  78.   # ● 描绘 HP
  79.   #     actor : 角色
  80.   #     x     : 描画目标 X 坐标
  81.   #     y     : 描画目标 Y 坐标
  82.   #     width : 描画目标的宽
  83.   #--------------------------------------------------------------------------
  84.   def draw_actor_small hp(actor, x, y, width = 144)
  85.     if actor.maxhp != 0
  86.       rate = actor.hp.to_f / actor.maxhp
  87.     else
  88.       rate = 0
  89.     end
  90.     plus_x = 0
  91.     rate_x = 0
  92.     plus_y = 25
  93.     plus_width = 0
  94.     rate_width = 100
  95.     height = 10
  96.     align1 = 1
  97.     align2 = 2
  98.     align3 = 0
  99.     grade1 = 1
  100.     grade2 = 0
  101.     color1 = Color.new(0, 0, 0, 192)
  102.     color2 = Color.new(255, 255, 192, 192)
  103.     color3 = Color.new(0, 0, 0, 192)
  104.     color4 = Color.new(64, 0, 0, 192)
  105.     color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
  106.     color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)
  107.     if actor.maxhp != 0
  108.       hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp
  109.     else
  110.       hp = 0
  111.     end
  112.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  113.                 width, plus_width + width * rate_width / 100,
  114.                 height, hp, align1, align2, align3,
  115.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  116.   #--------------------------------------------------------------------------
  117.   # ● 描绘 SP
  118.   #     actor : 角色
  119.   #     x     : 描画目标 X 坐标
  120.   #     y     : 描画目标 Y 坐标
  121.   #     width : 描画目标的宽
  122.   #--------------------------------------------------------------------------
  123.   def draw_actor_small sp(actor, x, y, width = 144)
  124.     if actor.maxsp != 0
  125.       rate = actor.sp.to_f / actor.maxsp
  126.     else
  127.       rate = 1
  128.     end
  129.     plus_x = 0
  130.     rate_x = 0
  131.     plus_y = 25
  132.     plus_width = 0
  133.     rate_width = 100
  134.     height = 10
  135.     align1 = 1
  136.     align2 = 2
  137.     align3 = 0
  138.     grade1 = 1
  139.     grade2 = 0
  140.     color1 = Color.new(0, 0, 0, 192)
  141.     color2 = Color.new(255, 255, 192, 192)
  142.     color3 = Color.new(0, 0, 0, 192)
  143.     color4 = Color.new(0, 64, 0, 192)
  144.     color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
  145.     color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
  146.     if actor.maxsp != 0
  147.       sp = (width + plus_width) * actor.sp * rate_width / 100 / actor.maxsp
  148.     else
  149.       sp = (width + plus_width) * rate_width / 100
  150.     end
  151.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  152.                 width, plus_width + width * rate_width / 100,
  153.                 height, sp, align1, align2, align3,
  154.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  155.     #--------------------------------------------------------------------------
  156.   # ● 渐变矩形
  157.   #--------------------------------------------------------------------------
  158.   def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
  159.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  160.     case align1
  161.     when 1
  162.       x += (rect_width - width) / 2
  163.     when 2
  164.       x += rect_width - width
  165.     end
  166.     case align2
  167.     when 1
  168.       y -= height / 2
  169.     when 2
  170.       y -= height
  171.     end
  172.     self.contents.fill_rect(x, y, width, height, color1)
  173.     self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
  174.     if align3 == 0
  175.       if grade1 == 2
  176.         grade1 = 3
  177.       end
  178.       if grade2 == 2
  179.         grade2 = 3
  180.       end
  181.     end
  182.     if (align3 == 1 and grade1 == 0) or grade1 > 0
  183.       color = color3
  184.       color3 = color4
  185.       color4 = color
  186.     end
  187.     if (align3 == 1 and grade2 == 0) or grade2 > 0
  188.       color = color5
  189.       color5 = color6
  190.       color6 = color
  191.     end
  192.     self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
  193.                                   color3, color4, grade1)
  194.     if align3 == 1
  195.       x += width - gauge
  196.     end
  197.     self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
  198.                                   color5, color6, grade2)
  199.   end
  200.   # --------------------------------
  201.   def up_color
  202.     return Color.new(74, 210, 74)
  203.   end
  204.   # --------------------------------
  205.   def down_color
  206.     return Color.new(170, 170, 170)
  207.   end

  208. end
复制代码
85行为什么会报错呢?
求解决方法
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

Lv1.梦旅人

梦石
0
星屑
47
在线时间
976 小时
注册时间
2011-4-30
帖子
860
2
发表于 2012-12-22 14:31:13 | 只看该作者
def draw_actor_small hp(actor, x, y, width = 144) 85行肯定错了啊 small 和 hp之间怎么会有空格?

评分

参与人数 1星屑 +20 收起 理由
hcm + 20 感谢回答

查看全部评分

湿滑落式骑!
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

3
 楼主| 发表于 2012-12-22 14:35:35 | 只看该作者
羞射了 发表于 2012-12-22 14:31
def draw_actor_small hp(actor, x, y, width = 144) 85行肯定错了啊 small 和 hp之间怎么会有空格? ...

定义的词组不能带空格啊?
我去试试看
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-24 16:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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