Exemple #1
0
        //* ────────────-_______________________*
        //* constructor & destructor ───────────────────────*

        //* -----------------------------------------------------------------------*
        /// <summary>コンストラクタ。</summary>
        ///
        /// <param name="strengthL">大モーター用の力の強さ。</param>
        /// <param name="strengthS">小モーター用の力の強さ。</param>
        /// <param name="durationL">大モーター用の持続するフレーム時間。</param>
        /// <param name="durationS">小モーター用の持続するフレーム時間。</param>
        public SForceData(SGradation strengthL, SGradation strengthS, int durationL, int durationS)
            : this()
        {
            this.strengthL = strengthL;
            this.strengthS = strengthS;
            this.durationL = durationL;
            this.durationS = durationS;
        }
Exemple #2
0
        //* -----------------------------------------------------------------------*
        /// <summary>
        /// XBOX360コントローラにフォースフィードバックを発信するスレッドです。
        /// </summary>
        ///
        /// <param name="gradationL">大モーター速度のグラデーション</param>
        /// <param name="gradationS">小モーター速度のグラデーション</param>
        /// <param name="nTimeL">大モーター駆動時間</param>
        /// <param name="nTimeS">小モーター駆動時間</param>
        /// <returns>スレッドが実行される間、<c>true</c></returns>
        private IEnumerator <object> threadForceFeedback(
            SGradation gradationL, SGradation gradationS, int nTimeL, int nTimeS
            )
        {
            for (int i = 0; i < Math.Max(nTimeL, nTimeS); i++)
            {
                yield return(null);

                forceLeft  = MathHelper.Max(forceLeft, gradationL.smooth(i, nTimeL));
                forceRight = MathHelper.Max(forceRight, gradationS.smooth(i, nTimeS));
            }
        }