Permanent
Creation

RPGツクールXP/VX用のRGSS素材です。
一部英語版対応です。 (A few materials can be used for English RPG MAKER XP/VX.)
競合率はルファーの独断と偏見なのでたまにハズレます。


#==============================================================================
# ■ XPにもドロップシャドウを!
#------------------------------------------------------------------------------
#  RPGツクールXPで、VXの影付き文字を再現します。
# (C)     ルファー
# WebSite https://tkoolerlufar.pages.dev/
#==============================================================================

=begin
  =対応RGSS
  1

  =他の素材との競合の可能性
  ... ないでしょ?

  =導入方法
  Mainより上に新セクションを作成して、このプログラムをそこにコピーする

  = フォントの裏技。
  Lufar モジュールの「DROPSHADOW_NAME」をいろいろいじると
  いろんなフォントが使えるかも。

  = 初期状態で影付き文字を書きたくない方へ。
  Lufar モジュールの「DROPSHADOW_DEFAULT」の横の青いのを
  "false"に修正してください。

  =更新履歴
  2010/04/13 公開

  =再定義しているメソッド (いずれもエイリアス使用)
  Font#initialize
  Bitmap#draw_text

  =新規定義しているプロパティ
  Font#shadow
  Font.default_shadow
=end
#----------------------------------------------------------------------------
# ◇ Lufar モジュール
#----------------------------------------------------------------------------
module Lufar
  DROPSHADOW_NAME = ["UmePlus P Gothic", "MS Pゴシック", "Arial"]
  DROPSHADOW_DEFAULT = true
end
#----------------------------------------------------------------------------
# ◆ Font クラス
#----------------------------------------------------------------------------
class Font
  #--------------------------------------------------------------------------
  # ● クラス変数
  #--------------------------------------------------------------------------
  @@default_name = Lufar::DROPSHADOW_NAME
  @@default_shadow = Lufar::DROPSHADOW_DEFAULT
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  unless private_method_defined? :_Lufar15_PrototypeOfInitialization
    alias :_Lufar15_PrototypeOfInitialization :initialize
  end
  def initialize(*args)
    _Lufar15_PrototypeOfInitialization(*args)
    @shadow = @@default_shadow
  end
  #--------------------------------------------------------------------------
  # ○ シャドウフラグの取得
  #--------------------------------------------------------------------------
  def shadow
    @shadow
  end
  #--------------------------------------------------------------------------
  # ○ シャドウフラグの設定
  #--------------------------------------------------------------------------
  def shadow=(flag)
    @shadow = flag
  end
  #--------------------------------------------------------------------------
  # ○ シャドウフラグデフォルト値の取得
  #--------------------------------------------------------------------------
  def self.default_shadow
    @@default_shadow
  end
  #--------------------------------------------------------------------------
  # ○ シャドウフラグデフォルト値の設定
  #--------------------------------------------------------------------------
  def self.default_shadow=(flag)
    @@default_shadow = flag
  end
end
#----------------------------------------------------------------------------
# ◆ Bitmap クラス
#----------------------------------------------------------------------------
class Bitmap
  #--------------------------------------------------------------------------
  # ● 文字列の描画
  #--------------------------------------------------------------------------
  unless method_defined?(:_Lufar15_PrototypeOfDt)
    alias _Lufar15_PrototypeOfDt draw_text
  end
  def draw_text(*args)
    if self.font.shadow
      sargs = Array.new(args)
      if sargs[0].kind_of?(Rect)
        sargs[0] = args[0].clone
        sargs[0].x += 1
        sargs[0].y += 1
      else
        sargs[0] += 1
        sargs[1] += 1
      end
      set_color = self.font.color.clone
      self.font.color.set(0.0, 0.0, 0.0, set_color.alpha)
      _Lufar15_PrototypeOfDt(*sargs)
      self.font.color = set_color
    end
    _Lufar15_PrototypeOfDt(*args)
  end
end

戻る