Project1

标题: 自制血条 [打印本页]

作者: letppigogo    时间: 2021-7-6 17:34
标题: 自制血条
因为不明原因直接导入图片血条后进入战斗后发生剧情对话会出现严重的顿卡,所以自己用脚本做了一个渐变颜色的血条。



可是问题又来了,如图我方血条扣血想要从右向左开始扣除的,但不知道为什么现在是从左往右开始扣除,研究了2天了,一直没有找到解决办法,求大神帮忙看看如何修改,敌人方是正常的。
下面是脚本,麻烦看下要修改哪里。

##==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

# ————————————————————————————————————

# ▼▲▼ XRXS_BP 2. HP,SPメーター表示 ▼▲▼
# by 桜雅 在土

#==============================================================================
# ■ Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化
  #--------------------------------------------------------------------------
  alias xrxs_bp2_refresh refresh
  def refresh
    xrxs_bp2_refresh
    @item_max = $game_party.actors.size
    #
    for i in 0...$game_party.actors.size
      actor = $game_party.actors
      actor_x = 0
      actor_y = i * 50 + 75
      draw_actor_hp_meter(actor, actor_x, actor_y, 100)      
    end
  end
end
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● HP描画
  #--------------------------------------------------------------------------
  def draw_actor_hp_meter(actor, x, y, width = 100, type = 0)
    if type == 1 and actor.hp == 0
      return
    end
    self.contents.font.color = system_color
    self.contents.fill_rect(x-1, y+26, width,9, Color.new(0, 0, 0, 255))
    w = width * (actor.maxhp - actor.hp) / [actor.maxhp,1].max
    self.contents.fill_rect(x, y+26, 100,9, Color.new(0, 0, 0, 255))
    self.contents.fill_rect(x, y+27, 100,7, Color.new(255, 255, 0, 255))
    self.contents.fill_rect(x, y+27, 85,7, Color.new(255, 240, 0, 255))
    self.contents.fill_rect(x, y+27, 80,7, Color.new(255, 225, 0, 255))
    self.contents.fill_rect(x, y+27, 75,7, Color.new(255, 210, 0, 255))
    self.contents.fill_rect(x, y+27, 70,7, Color.new(255, 195, 0, 255))
    self.contents.fill_rect(x, y+27, 65,7, Color.new(255, 180, 0, 255))
    self.contents.fill_rect(x, y+27, 60,7, Color.new(255, 165, 0, 255))
    self.contents.fill_rect(x, y+27, 55,7, Color.new(255, 150, 0, 255))
    self.contents.fill_rect(x, y+27, 50,7, Color.new(255, 135, 0, 255))
    self.contents.fill_rect(x, y+27, 45,7, Color.new(255, 120, 0, 255))
    self.contents.fill_rect(x, y+27, 40,7, Color.new(255, 105, 0, 255))
    self.contents.fill_rect(x, y+27, 35,7, Color.new(255, 90, 0, 255))
    self.contents.fill_rect(x, y+27, 30,7, Color.new(255, 75, 0, 255))
    self.contents.fill_rect(x, y+27, 25,7, Color.new(255, 60, 0, 255))
    self.contents.fill_rect(x, y+27, 20,7, Color.new(255, 45, 0, 255))
    self.contents.fill_rect(x, y+27, 15,7, Color.new(255, 0, 0, 255))
    self.contents.fill_rect(x, y+26, w,9, Color.new(0, 0, 0, 255))

#    self.contents.fill_rect(x-2, y+26, width,9, Color.new(0, 0, 0, 255))
#    w = width * actor.hp / [actor.maxhp,1].max
#   bitmap = RPG::Cache.picture("hp1_bar")
#   self.contents.blt(x-1,y+26,bitmap,Rect.new(0,0,w,9))
  end
end

作者: RPGzh500223    时间: 2021-7-6 18:42
1、卡顿问题
  就算新开的工程,战斗时出现消息窗口也会FPS骤降
  Scene_Battle 1里,找到这里修改
        # 如果不是结束战斗回合的情况下
        if @phase != 5
          # 刷新状态窗口
          @status_window.refresh unless $game_temp.message_window_showing
        end

2、血条位置问题
  def draw_actor_hp_meter
    最后一个self.contents.fill_rect(x, y+26, w,9, Color.new(0, 0, 0, 255))分类讨论一下fill_rect的起始x
   if Game_Actor === actor
     self.contents.fill_rect(x + width - w, y+26, w,9, Color.new(0, 0, 0, 255))
   else
     self.contents.fill_rect(x, y+26, w,9, Color.new(0, 0, 0, 255))
   end
   还是用图片写起来简单点,如你注释掉的

     

作者: letppigogo    时间: 2021-7-6 20:10
本帖最后由 letppigogo 于 2021-7-6 20:11 编辑
RPGzh500223 发表于 2021-7-6 18:42
1、卡顿问题
  就算新开的工程,战斗时出现消息窗口也会FPS骤降
  Scene_Battle 1里,找到这里修改


现在还在加班,回家试下看看。以前用的是最简单的左右各一条红杠,一点问题都没有,月初换了血条脚本,看着华丽了,特殊战斗开始后剧情部分就悲剧了,卡的都快出翔了。排查了2晚才找到原来是血条脚本的问题。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1