コード例 #1
0
        //* -----------------------------------------------------------------------*
        /// <summary>1フレーム分の更新処理を実行します。</summary>
        ///
        /// <param name="entity">この状態を適用されているオブジェクト。</param>
        /// <param name="privateMembers">
        /// オブジェクトと状態クラスのみがアクセス可能なフィールド。
        /// </param>
        /// <param name="gameTime">前フレームが開始してからの経過時間。</param>
        public override void update(
            CAI <CInputDetector> entity, CInputCollection.CPrivateMembers privateMembers, GameTime gameTime
            )
        {
            CInputCollection collection = entity.owner;

            if (collection.Count == 0)
            {
                foreach (PlayerIndex playerIndex in CInputXBOX360.allPlayerIndex)
                {
                    GamePadState state = GamePad.GetState(playerIndex);
                    if (state.IsConnected && state.getPress() != 0)
                    {
                        collection.Add(CInputXBOX360.getInstance(
                                           playerIndex, collection.playerNumber));
                        break;
                    }
                }
            }
            if (collection.Count != 0)
            {
                setCapacity(collection);
                entity.nextState = CStateWait.instance;
            }
            base.update(entity, privateMembers, gameTime);
        }
コード例 #2
0
        //* ────________________________________*
        //* methods ───────────────────────────────-*

        //* -----------------------------------------------------------------------*
        /// <summary>
        /// <para>状態が開始された時に呼び出されます。</para>
        /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para>
        /// </summary>
        ///
        /// <param name="entity">この状態を適用されたオブジェクト。</param>
        /// <param name="privateMembers">
        /// オブジェクトと状態クラスのみがアクセス可能なフィールド。
        /// </param>
        public override void setup(CAI <CInputDetector> entity, CInputCollection.CPrivateMembers privateMembers)
        {
            CInputCollection collection = entity.owner;

            setCapacity(collection);
            collection.releaseAwayController = true;
            base.setup(entity, privateMembers);
        }
コード例 #3
0
ファイル: CStateWait.cs プロジェクト: professorlust/nineball
        //* -----------------------------------------------------------------------*
        /// <summary>1フレーム分の更新処理を実行します。</summary>
        ///
        /// <param name="entity">この状態を適用されているオブジェクト。</param>
        /// <param name="privateMembers">
        /// オブジェクトと状態クラスのみがアクセス可能なフィールド。
        /// </param>
        /// <param name="gameTime">前フレームが開始してからの経過時間。</param>
        public override void update(CAI <CInputDetector> entity,
                                    CInputCollection.CPrivateMembers privateMembers, GameTime gameTime)
        {
            CInputCollection collection = entity.owner;

            if (collection.Count == 0)
            {
                entity.nextState = (CState <CAI <CInputDetector>, CInputCollection.CPrivateMembers>)
                                   entity.previousState;
            }
            base.update(entity, privateMembers, gameTime);
        }
コード例 #4
0
ファイル: CStateWait.cs プロジェクト: professorlust/nineball
        //* ────________________________________*
        //* methods ───────────────────────────────-*

        //* -----------------------------------------------------------------------*
        /// <summary>
        /// <para>状態が開始された時に呼び出されます。</para>
        /// <para>このメソッドは、遷移元の<c>teardown</c>よりも後に呼び出されます。</para>
        /// </summary>
        ///
        /// <param name="entity">この状態を適用されたオブジェクト。</param>
        /// <param name="privateMembers">
        /// オブジェクトと状態クラスのみがアクセス可能なフィールド。
        /// </param>
        /// <exception cref="System.InvalidOperationException">
        /// 自動認識発動時に戻るべき状態が見つからない場合。
        /// </exception>
        public override void setup(
            CAI <CInputDetector> entity, CInputCollection.CPrivateMembers privateMembers)
        {
            Type type = entity.previousState.GetType();

            if (!(type == detectType || type.IsSubclassOf(detectType)))
            {
                throw new InvalidOperationException(
                          "戻るべき自動認識状態を見つけることができませんでした。");
            }
            base.setup(entity, privateMembers);
        }
コード例 #5
0
        //* -----------------------------------------------------------------------*
        /// <summary>1フレーム分の更新処理を実行します。</summary>
        ///
        /// <param name="entity">この状態を適用されているオブジェクト。</param>
        /// <param name="privateMembers">
        /// オブジェクトと状態クラスのみがアクセス可能なフィールド。
        /// </param>
        /// <param name="gameTime">前フレームが開始してからの経過時間。</param>
        public override void update(
            CAI <CInputDetector> entity, CInputCollection.CPrivateMembers privateMembers, GameTime gameTime
            )
        {
            CInputCollection collection = entity.owner;

            if (collection.Count == 0)
            {
                CInputLegacy input = instanceList.FirstOrDefault(
                    item => item.isPushAnyKey(detectPOV, detectSlider));
                if (input != null)
                {
                    collection.Add(input);
                }
            }
            if (collection.Count != 0)
            {
                setCapacity(collection);
                entity.nextState = CStateWait.instance;
            }
            base.update(entity, privateMembers, gameTime);
        }