Project1

标题: 战斗头像的问题…… [打印本页]

作者: 冷夜残月    时间: 2008-8-26 19:46
标题: 战斗头像的问题……
唉,好不容易把脚本蒙对,头像显示了出来。但战斗中有2个人以上时,游戏速度变慢了,4个人战斗时FTP只剩下5……有没有办法缓解一下……
我在战斗中显示头像的脚本是这么写的

#==============================================================================
# ■ Window_BattleStatus
#------------------------------------------------------------------------------
#  显示战斗画面同伴状态的窗口。
#==============================================================================

class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize
    super(0, 320, 640, 160)
    self.opacity = 160
    self.contents = Bitmap.new(width - 32, height - 32)
    @level_up_flags = [false, false, false, false]
    self.opacity = 140
    self.z = 1
    self.contents.font.size = 20   
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    super
  end
  #--------------------------------------------------------------------------
  # ● 设置升级标志
  #     actor_index : 角色索引
  #--------------------------------------------------------------------------
  def level_up(actor_index)
    @level_up_flags[actor_index] = true
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      actor = $game_party.actors
      
      case i
      when 0
      testname = "batter"+actor.id.to_s
      bitmap=Bitmap.new("Graphics/Heads/#{testname}")
      src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
      self.contents.blt(42, 0, bitmap, src_rect)
      
      when 1
      testname = "batter"+actor.id.to_s
      bitmap=Bitmap.new("Graphics/Heads/#{testname}")
      src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
      self.contents.blt(202, 0, bitmap, src_rect)

      when 2
      testname = "batter"+actor.id.to_s
      bitmap=Bitmap.new("Graphics/Heads/#{testname}")
      src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
      self.contents.blt(362, 0, bitmap, src_rect)
      
      when 3
      testname = "batter"+actor.id.to_s
      bitmap=Bitmap.new("Graphics/Heads/#{testname}")
      src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
      self.contents.blt(522, 0, bitmap, src_rect)
      end
      
      actor_x = i * 160 + 4
      draw_actor_name(actor, actor_x, 0)
      draw_actor_hp(actor, actor_x, 64, 120)#32
      draw_actor_sp(actor, actor_x, 96, 120)#64
      if @level_up_flags
        self.contents.font.color = normal_color
        self.contents.draw_text(actor_x, 32, 120, 32, "等级上升")#96
      else
        draw_actor_state(actor, actor_x, 32)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    super
    # 主界面的不透明度下降
    if $game_temp.battle_main_phase
      self.contents_opacity -= 4 if self.contents_opacity > 191
    else
      self.contents_opacity += 4 if self.contents_opacity < 255
    end
  end
end
作者: 灯笼菜刀王    时间: 2008-8-27 00:15
for i in 0...$game_party.actors.size
   actor = $game_party.actors
end
testname = "batter"+actor.id.to_s
     bitmap=Bitmap.new("Graphics/Heads/#{testname}")
     src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
     self.contents.blt(42, 0, bitmap, src_rect)

就可以了~~~~~不用循环判断在分歧= =

作者: 冷夜残月    时间: 2008-8-27 19:11
不行啊……又变成了如下这样…………

作者: IamI    时间: 2008-8-27 19:16
实际上你应该把bitmap的生成放进initialize里面,在refresh里面生成实在是很浪费时间和内存
作者: 冷夜残月    时间: 2008-8-28 01:52
怎么放
作者: 冷夜残月    时间: 2008-8-29 07:15
又沉了……我不懂得在initialize哪一行加……
作者: 白斑病赌东道    时间: 2008-8-29 09:14
在游戏中显示图片会严重拖慢游戏速度。。。尤其是在战斗中。。。。
作者: 冷夜残月    时间: 2008-8-31 02:13
如果能让显示三个人的头像不卡也行啊~~




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