Exemplo n.º 1
0
 //* -----------------------------------------------------------------------*
 /// <summary>
 /// <para>コンストラクタ。</para>
 /// <para>
 /// グラデーション値を設定します。
 /// </para>
 /// </summary>
 ///
 /// <param name="fStart">初期値</param>
 /// <param name="fEnd">最終値</param>
 /// <param name="fLimit1">限界値1</param>
 /// <param name="fLimit2">限界値2</param>
 public SGradation(float fStart, float fEnd, float fLimit1, float fLimit2)
 {
     start       = fStart;
     end         = fEnd;
     limit1      = fLimit1;
     limit2      = fLimit2;
     interpolate = EInterpolate.clampSmooth;
 }
Exemplo n.º 2
0
        //* ────────────-_______________________*
        //* constructor & destructor ───────────────────────*

        //* -----------------------------------------------------------------------*
        /// <summary>
        /// <para>コンストラクタ。</para>
        /// <para>
        /// すべての項目に同一の値を設定します。(グラデーションしません)
        /// </para>
        /// </summary>
        ///
        /// <param name="fExpr">値</param>
        public SGradation(float fExpr)
        {
            start       = fExpr;
            end         = fExpr;
            limit1      = fExpr;
            limit2      = fExpr;
            interpolate = EInterpolate.clampSmooth;
        }
Exemplo n.º 3
0
 //* -----------------------------------------------------------------------*
 /// <summary>値を初期化します。</summary>
 ///
 /// <param name="start">開始値。</param>
 /// <param name="target">目標値。</param>
 /// <param name="interval">アニメーションに要する時間。</param>
 /// <param name="interpolate">アニメーションに使用する内分カウンタ。</param>
 public void reset(float start, float target, int interval, EInterpolate interpolate)
 {
     resetCounter();
     this.start       = start;
     this.now         = start;
     this.target      = target;
     this.interval    = interval;
     this.interpolate = interpolate;
 }
Exemplo n.º 4
0
 //* -----------------------------------------------------------------------*
 /// <summary>
 /// <para>コンストラクタ。</para>
 /// <para>
 /// グラデーション値を設定します。
 /// </para>
 /// </summary>
 ///
 /// <param name="fStart">初期値</param>
 /// <param name="fEnd">最終値</param>
 /// <param name="fLimit1">限界値1</param>
 /// <param name="fLimit2">限界値2</param>
 /// <param name="interpolate">内分カウンタ。</param>
 public SGradation(
     float fStart, float fEnd, float fLimit1, float fLimit2, EInterpolate interpolate)
 {
     start            = fStart;
     end              = fEnd;
     limit1           = fLimit1;
     limit2           = fLimit2;
     this.interpolate = interpolate;
 }
Exemplo n.º 5
0
        //* ────________________________________*
        //* methods ───────────────────────────────-*

        //* -----------------------------------------------------------------------*
        /// <summary>線形補完列挙体に対応する関数を取得します。</summary>
        ///
        /// <param name="interpolate">線形補完列挙体。</param>
        /// <returns>対応する関数へのデリゲート。</returns>
        /// <exception cref="System.IndexOutOfRangeException">
        /// 予約値を設定しようとした場合。
        /// </exception>
        public static Func <float, float, float, float, float> getFunction(
            this EInterpolate interpolate)
        {
            return(interpolateList[(int)interpolate]);
        }
Exemplo n.º 6
0
 //* -----------------------------------------------------------------------*
 /// <summary>線形補完を計算します。</summary>
 ///
 /// <param name="interpolate">線形補完列挙体。</param>
 /// <param name="start"><paramref name="now"/>が0と等しい場合の値</param>
 /// <param name="end"><paramref name="now"/>が<paramref name="limit"/>と等しい場合の値</param>
 /// <param name="now">現在時間</param>
 /// <param name="limit"><paramref name="end"/>に到達する時間</param>
 /// <returns>
 /// 0から<paramref name="limit"/>までの<paramref name="now"/>に相当する
 /// <paramref name="start"/>から<paramref name="end"/>までの値
 /// </returns>
 /// <exception cref="System.IndexOutOfRangeException">
 /// 予約値を設定しようとした場合。
 /// </exception>
 public static float interpolate(
     this EInterpolate interpolate, float start, float end, float now, float limit)
 {
     return(interpolate.getFunction()(start, end, now, limit));
 }
Exemplo n.º 7
0
 //* -----------------------------------------------------------------------*
 /// <summary>線形補完を計算します。</summary>
 ///
 /// <param name="interpolate">線形補完列挙体。</param>
 /// <param name="start"><paramref name="target"/>が0と等しい場合の値</param>
 /// <param name="end"><paramref name="target"/>が<paramref name="limit"/>と等しい場合の値</param>
 /// <param name="target">現在時間</param>
 /// <param name="limit"><paramref name="end"/>に到達する時間</param>
 /// <returns>
 /// 0から<paramref name="limit"/>までの<paramref name="target"/>に相当する
 /// <paramref name="start"/>から<paramref name="end"/>までの値
 /// </returns>
 /// <exception cref="System.IndexOutOfRangeException">
 /// 予約値を設定しようとした場合。
 /// </exception>
 public static float interpolate(
     this EInterpolate interpolate, float start, float end, float target, float limit)
 {
     return(interpolate.getLerpFunction()(start, end, target, limit));
 }
Exemplo n.º 8
0
 //* -----------------------------------------------------------------------*
 /// <summary>アニメーションを開始します。</summary>
 ///
 /// <param name="start">開始値。</param>
 /// <param name="target">目標値。</param>
 /// <param name="interval">アニメーションに要する時間。</param>
 /// <param name="interpolate">アニメーションに使用する内分カウンタ。</param>
 public void run(float start, float target, int interval, EInterpolate interpolate)
 {
     reset(start, target, interval, interpolate);
     nextState = CStateAnimationLite.instance;
 }