RMVXA

체력바 표시 스크립트 수정

by 프크 posted Oct 29, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

안녕하세요 rpgvxace초보게임제작자입니다.

제가 c언어는 조금 읽을줄 아는정도라 스크립트 제작은 거의 초보인데요.

제가 아방스내 게시물중 허걱님이 만들어 올려주신 체력바를 이와같은 스크립트를 쓰는데 당연하게도 한개만 출력할땐 잘나옵니다.

그런데 제가 원하는건 이걸 한개만 띄우는것이 아닌 동시에 두개를 띄우는것이라서 질문올려봅니다.

어떻게 스크립트를 수정하면 두개를 동시에 띄울수 있을까요?


module VariablesDisplayScript

  # 표시 토글 스위치 - 해당 스위치가 ON 일경우 표시

  SWITCH = 1

  

  # 표시위치 - 0:왼쪽 위,  1:오른쪽 위,  2:왼쪽 아래,  3:오른쪽 아래

  POSITION = 0

  

  # 윈도우 넓이

  WINDOW_WIDTH = 200

  

  # 글자 크기

  FONT_SIZE = 20

  

  # 표시할 변수이름, 변수 번호

  # ["이름", 번호1(, 번호2)]

  ITEM = [

  ["공격",1],

  ["방어",2],

  ["체력",4],

  ["4번 변수",6,7],

  ]

end


class Window_VariablesDisplay < Window_Base

  #--------------------------------------------------------------------------

  # ● 초기화

  #--------------------------------------------------------------------------

  def initialize

    super(window_x, window_y, width, height)

    contents.font.size = font_size

    update_visible

    update_values

  end

  #--------------------------------------------------------------------------

  # ● 새로고침

  #--------------------------------------------------------------------------

  def refresh

    contents.clear

    _y = 0

    item.each do |i|

      text = sprintf("%s : %d", i[0],value(i[1]))

      text += sprintf("/%d", value(i[2])) if i[2]

      draw_text(0, _y, text_size(text).width, line_height, text)

      _y += line_height

    end

  end

  #--------------------------------------------------------------------------

  # ● 갱신

  #--------------------------------------------------------------------------

  def update

    super

    update_values if update_visible

  end

  #--------------------------------------------------------------------------

  # ● 투명화 갱신

  #--------------------------------------------------------------------------

  def update_visible

    self.visible = switch_value

  end

  #--------------------------------------------------------------------------

  # ● 내용 갱신

  #--------------------------------------------------------------------------

  def update_values

    unless @values == values

      @values = values

      refresh

    end

  end

  #--------------------------------------------------------------------------

  # ● 스위치 상태 취득

  #--------------------------------------------------------------------------

  def switch_value

    $game_switches[VariablesDisplayScript::SWITCH]

  end

  #--------------------------------------------------------------------------

  # ● 값 배열 취득

  #--------------------------------------------------------------------------

  def values

    result = []

    item.each do |i|

      result.push(value(i[1]))

      result.push(value(i[2])) if i[2]

    end

    return result.dup

  end

  #--------------------------------------------------------------------------

  # ● 변수의 값 취득

  #--------------------------------------------------------------------------

  def value(n)

    $game_variables[n]

  end

  #--------------------------------------------------------------------------

  # ● 글자 크기

  #--------------------------------------------------------------------------

  def font_size

    VariablesDisplayScript::FONT_SIZE

  end

  #--------------------------------------------------------------------------

  # ● 한 줄의 높이

  #--------------------------------------------------------------------------

  def line_height

    font_size

  end

  #--------------------------------------------------------------------------

  # ● 변수 아이템

  #--------------------------------------------------------------------------

  def item

    VariablesDisplayScript::ITEM

  end

  #--------------------------------------------------------------------------

  # ● 윈도우 넓이

  #--------------------------------------------------------------------------

  def width

    VariablesDisplayScript::WINDOW_WIDTH

  end

  #--------------------------------------------------------------------------

  # ● 윈도우 높이

  #--------------------------------------------------------------------------

  def height

    fitting_height(item.size)

  end

  #--------------------------------------------------------------------------

  # ● 윈도우 표시 좌표 X

  #--------------------------------------------------------------------------

  def window_x

    case pos

    when 0, 2; 0

    when 1, 3; Graphics.width - width

    end

  end

  #--------------------------------------------------------------------------

  # ● 윈도우 표시 좌표 Y

  #--------------------------------------------------------------------------

  def window_y

    case pos

    when 0, 1; 0

    when 2, 3; Graphics.height - height

    end

  end

  #--------------------------------------------------------------------------

  # ● 윈도우 표시 위치

  #--------------------------------------------------------------------------

  def pos

    VariablesDisplayScript::POSITION

  end

end


class Scene_Map < Scene_Base

  #--------------------------------------------------------------------------

  # ● 시작

  #--------------------------------------------------------------------------

  alias variables_display_script_start start

  def start

    variables_display_script_start

    @window_var_disp = Window_VariablesDisplay.new

  end

  #--------------------------------------------------------------------------

  # ● 종료

  #--------------------------------------------------------------------------

  alias variables_display_script_terminate terminate

  def terminate

    @window_var_disp.dispose

    variables_display_script_terminate

  end

  #--------------------------------------------------------------------------

  # ● 갱신

  #--------------------------------------------------------------------------

  alias variables_display_script_update update

  def update

    @window_var_disp.update

    variables_display_script_update

  end

end