//* -----------------------------------------------------------------------* /// <summary>グラデーション計算をします。</summary> /// /// <param name="nNow">現在値</param> /// <param name="nSize">分割数</param> /// <returns>補完値</returns> public float smooth(int nNow, int nSize) { if (limit1 == limit2) { return(limit1); } return(MathHelper.Clamp(CInterpolate._clampSmooth(start, end, nNow, nSize), MathHelper.Min(limit1, limit2), MathHelper.Max(limit1, limit2))); }
//* -----------------------------------------------------------------------* /// <summary>音量値を文字列化します。</summary> /// /// <param name="bSlider">スライダーを挿入するかどうか</param> /// <returns>文字列化した音量値</returns> public string ToString(bool bSlider) { string strResult = string.Empty; string strDB = String.Format("{0:+0.0;-0.0;0}dB", dB.ToString()); if (bSlider) { char[] szVolume = new string('・', 10).ToCharArray(); szVolume[(int)MathHelper.Min(CInterpolate._clampSmooth(0, 10, volume, 2), 9)] = '◆'; strResult += new string(szVolume) + Environment.NewLine; strDB = string.Format("({0})", strDB); } return(strResult + strDB); }
//* -----------------------------------------------------------------------* /// <summary>音量値を文字列化します。</summary> /// /// <param name="bSlider">スライダーを挿入するかどうか</param> /// <returns>文字列化した音量値</returns> public string ToString(bool bSlider) { string strResult = string.Empty; string strDB = String.Format("{0:+00.0;-00.0;+00.0}dB", dB); if (bSlider) { char[] szVolume = new string('.', 10).ToCharArray(); int cursor = (int)MathHelper.Min( CInterpolate._clampSmooth(0, 10, volume, MAX_VOLUME), 9); szVolume[cursor] = 'V'; strResult += new string(szVolume) + Environment.NewLine; strDB = string.Format("({0})", strDB); } return(strResult + strDB); }
//* ────________________________________* //* methods ───────────────────────────────-* //* -----------------------------------------------------------------------* /// <summary>ボタン入力を検出します。</summary> /// <remarks> /// 注意: このメソッドを呼び出すと、自動的に登録されているクラスに対して /// <c>update()</c>が実行されます。レガシ ゲームパッドが高位入力管理クラスにて /// アクティブの状態でこのメソッドを呼び出すと、高位入力側の判定が /// 1フレーム分欠落します。 /// </remarks> /// /// <param name="gameTime">前フレームが開始してからの経過時間。</param> /// <returns> /// ボタン入力が検出されたデバイスの管理クラス。検出しなかった場合、<c>null</c>。 /// </returns> public CLegacyInput detectInput(GameTime gameTime) { CLegacyInput result = null; int threshold = (int)CInterpolate._clampSmooth(0, CLegacyInput.RANGE, this.threshold, 1); for (int i = inputList.Count; --i >= 0 && result == null;) { CLegacyInput input = inputList[i]; input.update(gameTime); JoystickState state = input.nowInputState; if (state.Equals(input.prevInputState) && ( Array.Exists <byte>(state.GetButtons(), b => b != 0) || Math.Abs(state.X) >= threshold || Math.Abs(state.Y) >= threshold || Math.Abs(state.Z) >= threshold)) { result = input; } } return(result); }