查看: 1729|回复: 1

[已经解决] 新手刚学脚本,求测试求修改求指导

[复制链接]

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2013-10-19 20:07:49 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 taroxd 于 2013-11-9 19:05 编辑

新手几乎没有编程基础,只会瞎改改。RGSS3的书写规范也不是很清楚。如果看到有问题,希望能不吝赐教!

1.修改自这里的脚本,使得只显示HP条,且地图上HP发生变化时可以及时更新。问一下,这样判断是否合理?
[pre lang="ruby" line="1"]#============================================================================
#  〇 地图显示血条
#============================================================================
class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # ● 开始处理
  #--------------------------------------------------------------------------
  alias hp_window_start start
  def start
    hp_window_start
    @hp_window = Window_hp.new
    @hp_window.refresh
    @hp_window.hide
  end
  alias hp_window_update update
  def update
    hp_window_update
    @hp_window.refresh if @hp_window.need_refresh?
    @hp_window.visible = true
#~     @hp_window.visible = $game_switches[1] #控制开关
  end
end

class Window_hp < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize
    @party_hp_rate = []
    super(-12, -16, 544 + 12, 416 + 16)
    self.opacity = 0
    update
  end
  #--------------------------------------------------------------------------
  # ● 绘制 HP
  #--------------------------------------------------------------------------
  def notext_draw_actor_hp(actor, x, y, width = 124)
    draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
    change_color(system_color)
  end
  #--------------------------------------------------------------------------
  # ● 绘制全队 HP
  #--------------------------------------------------------------------------
  def notext_draw_party_hp
    $game_party.all_members.each_with_index do |actor, i|
      notext_draw_actor_hp(actor, 0, 16 * i)
    end
  end
  #--------------------------------------------------------------------------
  # ● 获取全队 HP 的比率
  #--------------------------------------------------------------------------
  def party_hp_rate
    $game_party.all_members.collect {|actor| actor.hp_rate}
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    notext_draw_party_hp
    @party_hp_rate = party_hp_rate
  end
  #--------------------------------------------------------------------------
  # ● 判定是否需要刷新
  #--------------------------------------------------------------------------
  def need_refresh?
    !(party_hp_rate == @party_hp_rate)
  end
end
[/pre]

点评

另外新人一来就改数据结构倒是有点令人吃惊…………一般都是从Scene入手向上学习的  发表于 2013-10-20 11:56
太长了所以没看……时间不够…………建议不要一题多问,很晃眼…………不过大致上应该没有什么问题…………细节就需要自己测试了  发表于 2013-10-20 11:55
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

在本版发帖返回顶部