查看: 2303|回复: 2

[已经解决] 关于Window_Status中的参数actor

[复制链接]
梦石
0
星屑
1919
在线时间
404 小时
注册时间
2014-7-7
回帖
209

开拓者

发表于 2016-7-20 15:22:51 | 显示全部楼层 |阅读模式

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

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

×
[pre lang="ruby"]#------------------------------------------------------------------------------
#  状态画面中,显示角色基本信息的窗口。
#==============================================================================

class Window_Status < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 0, Graphics.width, Graphics.height)
    @actor = actor
    refresh
    self.opacity = 0
    activate
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    Graphics.width - 160
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的高度
  #--------------------------------------------------------------------------
  def window_height
    Graphics.height
  end
  #--------------------------------------------------------------------------
  # ● 设置角色
  #--------------------------------------------------------------------------
  def actor=(actor)
    return if @actor == actor
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    draw_block1   (line_height * 0)
    draw_horz_line(line_height * 1)
    draw_block2   (line_height * 2)
    draw_horz_line(line_height * 6)
    draw_block3   (line_height * 7)
    draw_horz_line(line_height * 13)
    draw_block4   (line_height * 14)
  end
  #--------------------------------------------------------------------------
  # ● 绘制区域 1
  #--------------------------------------------------------------------------
  #def draw_block1(y)
  #  draw_actor_name(@actor, 4, y)
  #  draw_actor_class(@actor, 128, y)
  #  draw_actor_nickname(@actor, 288, y)
  #end
  #--------------------------------------------------------------------------
  # ● 绘制区域 2
  #--------------------------------------------------------------------------
  def draw_block2(y)
    #draw_actor_face(@actor, 8, y)
    draw_basic_info(255, y)
    #draw_exp_info(304, y)
  end
  #--------------------------------------------------------------------------
  # ● 绘制区域 3
  #--------------------------------------------------------------------------
  def draw_block3(y)
    draw_parameters(255, y)
    draw_equipments(300, y)
  end
  #--------------------------------------------------------------------------
  # ● 绘制区域 4
  #--------------------------------------------------------------------------
# def draw_block4(y)
  #  draw_description(4, y)
# end
  #--------------------------------------------------------------------------
  # ● 绘制水平线
  #--------------------------------------------------------------------------
  #def draw_horz_line(y)
  #  line_y = y + line_height / 2 - 1
  #  contents.fill_rect(0, line_y, contents_width, 2, line_color)
# end
  #--------------------------------------------------------------------------
  # ● 获取水平线的颜色
  #--------------------------------------------------------------------------
  #def line_color
  #  color = normal_color
  #  color.alpha = 48
  #  color
  #end
  #--------------------------------------------------------------------------
  # ● 绘制基本信息
  #--------------------------------------------------------------------------
  def draw_basic_info(x, y)
    draw_actor_level(@actor, x, y + line_height * 0)
    draw_actor_icons(@actor, x, y + line_height * 1)
    draw_actor_hp(@actor, x, y + line_height * 2)
    draw_actor_mp(@actor, x, y + line_height * 3)
  end
  #--------------------------------------------------------------------------
  # ● 绘制能力值
  #--------------------------------------------------------------------------
  def draw_parameters(x, y)
    6.times {|i| draw_actor_param(@actor, x, y + line_height * i, i + 2) }
  end
=begin  
  #--------------------------------------------------------------------------
  # ● 绘制经验值信息
  #--------------------------------------------------------------------------
  def draw_exp_info(x, y)
    s1 = @actor.max_level? ? "-------" : @actor.exp
    s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
    s_next = sprintf(Vocab::ExpNext, Vocab::level)
    change_color(system_color)
    draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
    draw_text(x, y + line_height * 2, 180, line_height, s_next)
    change_color(normal_color)
    draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
    draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
  end
=end  
  #--------------------------------------------------------------------------
  # ● 绘制装备
  #--------------------------------------------------------------------------
  def draw_equipments(x, y)
    @actor.equips.each_with_index do |item, i|
      draw_item_name(item, x, y + line_height * i)
    end
  end
  #--------------------------------------------------------------------------
  # ● 绘制说明
  #--------------------------------------------------------------------------
# def draw_description(x, y)
#   draw_text_ex(x, y, @actor.description)
# end
end[/pre]
第八行的参数actor是要传递什么?角色的index?还是角色名?
cheap
梦石
0
星屑
87
在线时间
92 小时
注册时间
2013-8-16
回帖
12
发表于 2016-7-20 15:47:46 | 显示全部楼层
角色的对象,这个对象有ID、姓名等属性

点评

谢谢  发表于 2016-7-20 19:48
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部