예제 #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("音響処理の初期化完了。");
        }
예제 #2
0
        //* ────________________________________*
        //* 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();
        }
예제 #3
0
        //* ────________________________________*
        //* 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);
        }
예제 #4
0
        //* ────________________________________*
        //* 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());
        }