查看: 2692|回复: 13

[已经过期] 如何让四围变成血条那样

[复制链接]
梦石
0
星屑
17561
在线时间
4249 小时
注册时间
2013-7-18
回帖
2491
发表于 2016-9-8 08:18:27 | 显示全部楼层 |阅读模式

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

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

×
属性四围只有数字,变成血条那样带一个槽,是不是美观又直观一点

包括攻击力,防御什么的都可以弄成条状
退隐....

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2016-9-8 08:40:26 | 显示全部楼层
……你游戏的攻击和防御在战斗中还能打着打着打没掉?
回复

使用道具 举报

梦石
0
星屑
451
在线时间
228 小时
注册时间
2015-2-23
回帖
233
发表于 2016-9-8 08:42:42 | 显示全部楼层
血条还好理解。攻击防御什么的弄成条不太适用,再说攻击防御也没有一个最大值可以参照,怎么弄成条?

点评

可以考虑数据库上限 999,我记得有个很古老的脚本就是将 999 当作最大值。  发表于 2016-9-8 11:29
制作XP特效,找我。
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

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

发表于 2016-9-8 21:47:50 | 显示全部楼层
本帖最后由 cinderelmini 于 2016-9-10 15:12 编辑

默认系统的情况下,
把下面的代码放入Main前,然后把Window_Status里面的33~36行的
【draw_actor_parameter】(没意外的话这4行方法的最后一个参数分别是3、4、5、6)
改成【draw_actor_parameter_meter】括弧里的参数不要改。

反正用法和默认的【draw_actor_parameter】一样,
需要注意的就是属性参数只能是从3~6,分别指的就是四围。
PS:这段代码里的值槽只弄了个简易的……

【Main前Insert的代码】

  1. class Window_Base < Window
  2.   # 能力值最大值
  3.   PARAM_MAX = 999
  4.   #--------------------------------------------------------------------------
  5.   # ○ 描绘带值槽的能力值
  6.   #     actor : 角色
  7.   #     x     : 描画目标 X 坐标
  8.   #     y     : 描画目标 Y 坐标
  9.   #     type  : 能力值种类 (3~6)
  10.   #--------------------------------------------------------------------------
  11.   def draw_actor_parameter_meter(actor, x, y, type)
  12.     case type
  13.     when 3 # 力量
  14.       parameter_name = $data_system.words.str
  15.       parameter_value = actor.str
  16.       meter_color = Color.new(255, 0, 0)
  17.     when 4 # 灵巧
  18.       parameter_name = $data_system.words.dex
  19.       parameter_value = actor.dex
  20.       meter_color = Color.new(0, 255, 0)
  21.     when 5 # 速度
  22.       parameter_name = $data_system.words.agi
  23.       parameter_value = actor.agi
  24.       meter_color = Color.new(0, 255, 255)
  25.     when 6 # 魔力
  26.       parameter_name = $data_system.words.int
  27.       parameter_value = actor.int
  28.       meter_color = Color.new(0, 0, 255)
  29.     end
  30.     # 绘制值槽
  31.     rate = parameter_value.to_f / PARAM_MAX
  32.     draw_meter_with_color(x + 50, y + 14, 72, 10, rate, meter_color)
  33.     # 绘制文字和数值
  34.     self.contents.font.color = system_color
  35.     self.contents.draw_text(x, y, 120, 32, parameter_name)
  36.     self.contents.font.color = normal_color
  37.     self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ○ 描绘设置颜色的值槽
  41.   #--------------------------------------------------------------------------
  42.   def draw_meter_with_color(x, y, width, height, rate, color)
  43.     meter_width = (width * rate).round
  44.     rect = Rect.new(x, y, meter_width, height)
  45.     contents.fill_rect(rect, color)
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ○ 描绘值槽
  49.   #--------------------------------------------------------------------------
  50.   def draw_meter(x, y, width, height, rate)
  51.     rect = Rect.new(x, y, width, height)
  52.     contents.fill_rect(rect, Color.new(0, 0, 0))
  53.     meter_width = ((width - 2) * rate).round
  54.     rect = Rect.new(x + 1, y + 1, meter_width, height - 2)
  55.     contents.fill_rect(rect, Color.new(255, 255, 255))
  56.   end
  57. end
复制代码

点评

可以了,如果还能吧边缘磨光一点就更好了  发表于 2016-9-10 19:22
→v→不要在意这种细节~~  发表于 2016-9-10 17:10
parameter_meter... 莫名戳中笑点  发表于 2016-9-10 16:53
脚本更新了一下,值槽的颜色在【draw_actor_parameter_meter】里面case各自的值里面设定。  发表于 2016-9-10 15:13
底槽解决了,我说的颜色最好是每个条都可以定义呀  发表于 2016-9-9 16:05

评分

参与人数 1星屑 +20 收起 理由
y967 + 20 塞糖

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部