기타

필드에서 체력을 출력합니다.

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
class Window_HP < Window_Base
  def initialize
    super(0, 0, 180, 55) # <- location, size
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font = Font.new("궁서체", 16) # <- font, size
    self.opacity = 0
    self.back_opacity = 0
  end
  def refresh
    self.contents.clear
    self.contents.draw_text(0, 0, 170, 30, @show_text)
  end
  def actor
    $game_party.actors[0] # <- 파티 0번째
  end
  def update
    super
    text = sprintf("체력: %4d / %4d", actor.hp.to_i, actor.maxhp.to_i)
    if @show_text != text
      @show_text = text
      refresh
    end
  end
end

class Scene_Map
  alias update_window_hp update
  def update
    update_window_hp
    @window_hp = Window_HP.new unless @window_hp
    @window_hp.update
    unless $scene.is_a?(Scene_Map)
      @window_hp.dispose
      @window_hp = nil
    end
  end
end


원본은 비밀님의 경험치 %를 필드에 출력하는 소스입니다.

HP: 534/768 이런식으로 출력됩니다.


Tip & Tech. 1 : text = sprintf("체력: %4d / %4d", actor.hp.to_i, actor.maxhp.to_i)에서 'actor.hp.to_i' 와 'actor.maxhp.to_i' 를 어떤걸로 수정하느냐에 따라서 출력되는 데이터가 변경됩니다.

ex. 1) 'actor.hp.to_i' 와 'actor.maxhp.to_i'를 'actor.sp.to_i' 'actor.maxsp.to_i'로 바꿔주시면 마력이 표시됩니다.

ex. 2) 'actor.hp.to_i' 와 'actor.maxhp.to_i'를 'actor.exp_s' 'actor.next_exp_s'로 바꿔주시면 경험치가 표시됩니다. 형식은 '현재까지 쌓은 경험치' / '도달 목표 경험치' 입니다. (예 : 100 / 1024 이런식으로..)



Tip & Tech. 2 : %4d는 자릿수를 맞추기 위해서 (4자리) 수정한 것입니다. 알맞게 조절해서 사용하세요.