//* ────────────-_______________________* //* 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("音響処理の初期化完了。"); }
//* -----------------------------------------------------------------------* /// <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コントローラの初期化完了。"); }