Ejemplo n.º 1
0
        //* -----------------------------------------------------------------------*
        /// <summary>コンストラクタ。</summary>
        ///
        /// <param name="hWnd">ウィンドウハンドル</param>
        /// <param name="buttons">十字キーを除くボタンの数。</param>
        /// <param name="keyLoopStart">連続入力となるまでのフレーム時間間隔。</param>
        /// <param name="keyLoopInterval">押しっぱなしで連続入力となるフレーム時間間隔。</param>
        /// <param name="connected">接続されているXBOX360コントローラ一覧</param>
        public CInput(IntPtr hWnd, byte buttons, ushort keyLoopStart, ushort keyLoopInterval, PlayerIndex[] connected)
        {
            CLogger.add("入力処理・XBOX360コントローラの初期化をしています...");
            int nButtons     = buttons;
            int nFullButtons = nButtons + 4;

            CONNECTED = CMisc.getUnique <PlayerIndex>(connected);
            if (!isUseXBOX360GamePad)
            {
                CLogger.add("XBOX360コントローラを使用しません。");
            }
#if WINDOWS
            try { legacyManager = new CLegacyInputManager(hWnd); }
            catch (FileNotFoundException e) {
                CLogger.add(
                    "Managed DirectXの初期化に失敗しました。\r\n" +
                    "最新版のDirectX(update June 2008)がインストールされているか再確認してください。");
                CLogger.add(e.ToString());
            }
            assignLegacy = new int[nButtons];
            if (legacy == null)
            {
                CLogger.add("レガシ ゲームパッドを使用しません。");
            }
#endif
            assignXBOX360  = new Buttons[nButtons];
            assignKeyboard = new Keys[nFullButtons];
            BUTTON_STATE   = new SButtonState[nFullButtons];
            for (int i = 0; i < nFullButtons; i++)
            {
                BUTTON_STATE[i] = new SButtonState(keyLoopStart, keyLoopInterval);
            }
            MICROTHREAD_MANAGER.add(threadStateReflesh());
            CLogger.add("入力処理・XBOX360コントローラの初期化完了。");
        }