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

        //* -----------------------------------------------------------------------*
        /// <summary>コンストラクタ。</summary>
        ///
        /// <param name="index2assert">インデックスをアセット名に変換するためのコールバック用デリゲート。</param>
        /// <param name="loopSEInterval">効果音を繰り返し再生する際の間隔。</param>
        /// <param name="fileXGS">XACTサウンドエンジン ファイル名。</param>
        /// <param name="fileXSB">XACT再生キュー ファイル名。</param>
        /// <param name="fileXWBSE">XACT波形バンク(効果音) ファイル名。</param>
        /// <param name="fileXWBBGM">XACT波形バンク(BGM) ファイル名。</param>
        public CAudio(
            Converter <ushort, string> index2assert, ushort loopSEInterval,
            string fileXGS, string fileXSB, string fileXWBSE, string fileXWBBGM
            )
        {
            CLogger.add("音響処理の初期化をしています...");
            LOOPSE_INTERVAL = loopSEInterval;
            try
            {
                INDEX2ASERT = index2assert;
                engine      = new AudioEngine(fileXGS);
                waveBankSE  = new WaveBank(engine, fileXWBSE);
                waveBankBGM = new WaveBank(engine, fileXWBBGM, 0, 32767);
                soundBank   = new SoundBank(engine, fileXSB);
                MICROTHREAD_MANAGER.add(threadPlaySE());
                MICROTHREAD_MANAGER.add(threadGC());
            }
            catch (Exception e)
            {
                Dispose();
                CLogger.add(
                    "音響処理の初期化に失敗しましたので、サウンドを切り離します。" + Environment.NewLine +
                    e.ToString());
                CLogger.add(
                    "Microsoft .NET Framework 1.1 がインストールされていない可能性があります。" + Environment.NewLine +
                    "このゲームを実行するためにはMicrosoft .NET Framework 2.0 SP1または" + Environment.NewLine +
                    "3.5 以降が必要ですが、音響処理の実行には 1.1 も別途必要となります。" + Environment.NewLine +
                    "このランタイムは、下記のWebサイトで入手することが出来ます。" + Environment.NewLine + Environment.NewLine +
                    "(日本語) http://www.microsoft.com/japan/msdn/netframework/" + Environment.NewLine + Environment.NewLine +
                    "あるいは、最新のDirectXをインストールされていない可能性があります。" + Environment.NewLine +
                    "このランタイムは、下記のWebサイトで入手することが出来ます。" + Environment.NewLine + Environment.NewLine +
                    "(日本語) http://www.microsoft.com/japan/windows/DirectX/");
            }
            CLogger.add("音響処理の初期化完了。");
        }
Example #2
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コントローラの初期化完了。");
        }