コード例 #1
0
 public void モーションを再生する(float frame, モーション再生終了後の挙動 action)
 {
     if (frame > このモーションにおける最終フレーム)
     {
         throw new InvalidOperationException("最終フレームを超えた場所から再生を求められました。");
     }
     現在のフレーム        = frame;
     _再生中である        = true;
     _モーション再生終了後の挙動 = action;
 }
コード例 #2
0
 /// <summary>
 /// IMotionProviderメンバーの実装
 /// </summary>
 public void モーションを再生する(float frame, モーション再生終了後の挙動 actionAfterMotion)
 {
     if (frame > このモーションにおける最終フレーム)
     {
         throw new InvalidOperationException("最終フレームを超えた場所から再生を求められました。");
     }
     現在のフレーム = frame;
     this.actionAfterMotion = actionAfterMotion;
     isPlaying = true;
 }
コード例 #3
0
        /// <summary>
        ///     指定したモーションを再生する
        /// </summary>
        /// <param name="id">モーションのid</param>
        /// <param name="startFrame">最初のフレーム</param>
        /// <param name="setting">終了後の挙動</param>
        public void モーションを適用する(モーション motionProvider, int startFrame = 0, モーション再生終了後の挙動 setting = モーション再生終了後の挙動.Nothing)
        {
            // TODO: モーションが同時には1つしか使えない
            if (現在再生中のモーション != null)
            {
                現在再生中のモーション.モーションを停止する();
            }

            motionProvider.モーションを再生する(startFrame, setting);

            現在再生中のモーション = motionProvider;
        }
コード例 #4
0
 private void motion_MotionFinished(object owner, モーション再生終了後の挙動 obj)
 {
     モーションが再生終了した?.Invoke(this, obj);
 }