Permanent
Creation

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


#==============================================================================
# ■ 水平回転ライブラリ
#------------------------------------------------------------------------------
#  y軸を中心に回転できるスプライトの定義です。
# (C) ルファー
# WebSite  https://tkoolerlufar.pages.dev/
#==============================================================================

=begin
  =対応RGSS
  1 2

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

  =他の素材との競合の可能性
  ... 皆無

  =更新履歴
  2009/06/24 公開

  =新規定義しているクラス
  Sprite_HorizontallyTurnable
=end
#----------------------------------------------------------------------------
# ◇ Sprite_HorizontallyTurnable クラス
#----------------------------------------------------------------------------
class Sprite_HorizontallyTurnable < Sprite
  #--------------------------------------------------------------------------
  # ○ オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(*args)
    super(*args)
    @_Lufar_zoom_x = 1.0
    @_Lufar_mirror = false
    @_Lufar_x_angle = 0
  end
  #--------------------------------------------------------------------------
  # ○ 横のズーム倍率の取得
  #--------------------------------------------------------------------------
  alias :lfr10_org_zx :zoom_x unless method_defined? :lfr10_org_zx
  def zoom_x
    @_Lufar_zoom_x
  end
  #--------------------------------------------------------------------------
  # ○ 横のズーム倍率の設定
  #     val : 設定後の、横のズーム倍率
  #--------------------------------------------------------------------------
  alias :lfr10_org_zx= :zoom_x= unless method_defined? :lfr10_org_zx=
  def zoom_x=(val)
    @_Lufar_zoom_x = val
    _Lufar_refresh_zx_and_mirror
  end
  #--------------------------------------------------------------------------
  # ○ 鏡面フラグの取得
  #--------------------------------------------------------------------------
  alias :lfr10_org_mirror :mirror unless method_defined? :lfr10_org_mirror
  def mirror
    @_Lufar_mirror
  end
  #--------------------------------------------------------------------------
  # ○ 鏡面フラグの設定
  #     flg : 設定後の鏡面フラグ
  #--------------------------------------------------------------------------
  alias :lfr10_org_mirror= :mirror= unless method_defined? :lfr10_org_mirror=
  def mirror=(flg)
    @_Lufar_mirror = flg
    _Lufar_refresh_zx_and_mirror
  end
  #--------------------------------------------------------------------------
  # ○ 水平回転の角度の取得
  #--------------------------------------------------------------------------
  def x_angle
    @_Lufar_x_angle
  end
  #--------------------------------------------------------------------------
  # ○ 水平回転の角度の設定
  #     val : 設定後の、水平回転の角度
  #--------------------------------------------------------------------------
  def x_angle=(val)
    @_Lufar_x_angle = val
    _Lufar_refresh_zx_and_mirror
  end
  #--------------------------------------------------------------------------
  # ○ 横のズーム倍率と鏡面フラグのリフレッシュ
  #--------------------------------------------------------------------------
  def _Lufar_refresh_zx_and_mirror
    θ = @_Lufar_x_angle
    θ += 360 while θ < 0
    θ %= 360
    self.lfr10_org_mirror = @_Lufar_mirror ^ (θ >= 90 && θ < 270)
    if(θ >= 90 && θ < 270) then
      self.lfr10_org_zx = Math.cos((180 - θ) * Math::PI / 180.0)
    else
      self.lfr10_org_zx = Math.cos(θ * Math::PI / 180.0)
    end
  end
  protected :_Lufar_refresh_zx_and_mirror
end

戻る