//* ────────────-_______________________* //* 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("音響処理の初期化完了。"); }
//* ────________________________________* //* methods ───────────────────────────────-* //* -----------------------------------------------------------------------* /// <summary> /// <para>状態が開始された時に呼び出されます。</para> /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para> /// </summary> /// /// <param name="entity">この状態を適用されたオブジェクト。</param> /// <param name="privateMembers"> /// オブジェクトと状態クラスのみがアクセス可能なフィールド。 /// </param> public override void setup(CEntity entity, CGame privateMembers) { base.setup(entity, privateMembers); alpha = 0; mgrCo.Add(coAlpha()); CPresenceSender.sendAtCredit(); }
//* ────________________________________* //* methods ───────────────────────────────-* //* -----------------------------------------------------------------------* /// <summary> /// <para>状態が開始された時に呼び出されます。</para> /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para> /// </summary> /// /// <param name="entity">この状態を適用されたオブジェクト。</param> /// <param name="privateMembers"> /// オブジェクトと状態クラスのみがアクセス可能なフィールド。 /// </param> public override void setup(CEntity entity, CGame privateMembers) { base.setup(entity, privateMembers); CGame.instance.bgColor = Color.Silver; countdown.gradationMode = false; mgrCo.nextState = CStateCoRoutineManager.instance; mgrCo.Add(coCountdown()); taskManager.Add(countdown); taskManager.Add(mgrCo); print(new Point(40, 20), EAlign.Center, Color.DarkRed, Resources.ROLL_SPACE); }
//* ────________________________________* //* methods ───────────────────────────────-* //* -----------------------------------------------------------------------* /// <summary> /// <para>状態が開始された時に呼び出されます。</para> /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para> /// </summary> /// /// <param name="entity">この状態を適用されたオブジェクト。</param> /// <param name="privateMembers"> /// オブジェクトと状態クラスのみがアクセス可能なフィールド。 /// </param> public override void setup(CEntity entity, CGame privateMembers) { base.setup(entity, privateMembers); alpha = 0; mgrCo.Add(coAlpha()); }