기타

(T-RPG) 데미지 표시 시의 폰트를 설정

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
#==============================================================================
# ++ 데미지 문자 커스터마이즈 ver. 1.01 ++
#  Script by 파라개
#  http://para.j-mx.com/
#------------------------------------------------------------------------------
# 데미지 표시의 폰트를 변경.
#==============================================================================

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

    # 데미지 표시용 폰트
    DAMAGE_FONT_NAME = ["Georgia"]      # 폰트명
    DAMAGE_FONT_SIZE = 32      # 사이즈
    DAMAGE_FONT_BOLD = false    # 굵은 글씨로 할까(true/false)
    DAMAGE_FONT_ITALIC = false  # 이탤릭으로 할까(true/false)
    FONT_COLOR_DAMAGE = Color.new(255, 255, 255)  # 데미지시의 색
    FONT_COLOR_HEAL = Color.new(176, 255, 144)    # 회복시의 색
    FONT_COLOR_D_FRAME = Color.new(0, 0, 0)        # 데미지 문자의 테두리의 색
    FONT_COLOR_H_FRAME = Color.new(0, 0, 0)        # 회복 문자의 테두리의 색
    CRITICAL_NAME = "CRITICAL"    # 위기 히트시에 표시하는 문자
    CRITICAL_FONT_SIZE = 20    # 위기의 문자 사이즈
   
  #----------------------------------------------------------------------------
   
    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 + ["Arial Black", "MS P고딕"]
      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






[개요]
데미지 표시의 폰트를 변경합니다.


[사양]
지정한 폰트가 인스톨 되어 있지 않은 경우,
표준 폰트( 「Arial Black」또는 「MS P고딕」)를 사용합니다.