전투

데미지 폰트변경

by 카르닉스 posted Feb 26, 2010
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

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

데미지 폰트 변경해 줘요.

#==============================================================================
# ++ 데미지 문자 커스터마이즈 ver. 1.01 ++
#  Script by 파라개
#  http://para.j-mx.com/
#------------------------------------------------------------------------------
# 데미지 표시의 폰트를 변경.
#==============================================================================

module RPG
  class Sprite < ::Sprite
   
  #----------------------------------------------------------------------------

    # 데미지 표시용 폰트
    DAMAGE_FONT_NAME = ["Rix정정당당"]      # 폰트명
    DAMAGE_FONT_SIZE = 22      # 사이즈
    DAMAGE_FONT_BOLD = true    # 굵은 글씨로 할까(true/false)
    DAMAGE_FONT_ITALIC = true  # 이탤릭으로 할까(true/false)
    FONT_COLOR_DAMAGE = Color.new(255, 190, 70)  # 데미지시의 색
    FONT_COLOR_HEAL = Color.new(186, 255, 251)    # 회복시의 색
    FONT_COLOR_D_FRAME = Color.new(200, 0, 0)        # 데미지 문자의 테두리의 색
    FONT_COLOR_H_FRAME = Color.new(20, 20, 20)        # 회복 문자의 테두리의 색
    CRITICAL_NAME = "치명타!"    # 위기 히트시에 표시하는 문자
    CRITICAL_FONT_SIZE = 18    # 위기의 문자 사이즈
   
  #----------------------------------------------------------------------------
   
    def damage(value, critical)
      dispose_damage
      if value.is_a?(Numeric)
        damage_string = value.abs.to_s
      else
        damage_string = value.to_s
      end
      bitmap = Bitmap.new(160, DAMAGE_FONT_SIZE*2)
      bitmap.font.name = DAMAGE_FONT_NAME + ["Rix정정당당", "Rix정정당당"]
      bitmap.font.size = DAMAGE_FONT_SIZE
      bitmap.font.bold = DAMAGE_FONT_BOLD
      bitmap.font.italic = DAMAGE_FONT_ITALIC
      if value.is_a?(Numeric) and value < 0
        bitmap.font.color = FONT_COLOR_H_FRAME
      else
        bitmap.font.color = FONT_COLOR_D_FRAME
      end
      bitmap.draw_text(-1, 12-1, 160, DAMAGE_FONT_SIZE*1.2, damage_string, 1)
      bitmap.draw_text(+1, 12-1, 160, DAMAGE_FONT_SIZE*1.2, damage_string, 1)
      bitmap.draw_text(-1, 12+1, 160, DAMAGE_FONT_SIZE*1.2, damage_string, 1)
      bitmap.draw_text(+1, 12+1, 160, DAMAGE_FONT_SIZE*1.2, damage_string, 1)
      if value.is_a?(Numeric) and value < 0
        bitmap.font.color = FONT_COLOR_HEAL
      else
        bitmap.font.color = FONT_COLOR_DAMAGE
      end
      bitmap.draw_text(0, 12, 160, DAMAGE_FONT_SIZE*1.2, damage_string, 1)
      if critical
        bitmap.font.size = CRITICAL_FONT_SIZE
        bitmap.font.color = FONT_COLOR_D_FRAME
        bitmap.draw_text(-1, -1, 160, CRITICAL_FONT_SIZE, CRITICAL_NAME, 1)
        bitmap.draw_text(+1, -1, 160, CRITICAL_FONT_SIZE, CRITICAL_NAME, 1)
        bitmap.draw_text(-1, +1, 160, CRITICAL_FONT_SIZE, CRITICAL_NAME, 1)
        bitmap.draw_text(+1, +1, 160, CRITICAL_FONT_SIZE, CRITICAL_NAME, 1)
        bitmap.font.color = FONT_COLOR_DAMAGE
        bitmap.draw_text(0, 0, 160, CRITICAL_FONT_SIZE, CRITICAL_NAME, 1)
      end
      @_damage_sprite = ::Sprite.new(self.viewport)
      @_damage_sprite.bitmap = bitmap
      @_damage_sprite.ox = 80
      @_damage_sprite.oy = 20
      @_damage_sprite.x = self.x
      @_damage_sprite.y = self.y - self.oy / 2
      @_damage_sprite.z = 3000
      @_damage_duration = 40
    end
  end
end