Exemple #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);
        }
Exemple #2
0
        //* ────________________________________*
        //* methods ───────────────────────────────-*

        //* -----------------------------------------------------------------------*
        /// <summary>方向ボタンの状態を更新します。</summary>
        ///
        /// <param name="state">最新の入力情報。</param>
        /// <param name="entity">この状態を適用されているオブジェクト。</param>
        /// <param name="privateMembers">
        /// オブジェクトと状態クラスのみがアクセス可能なフィールド。
        /// </param>
        /// <param name="gameTime">前フレームが開始してからの経過時間。</param>
        protected override void refleshAxis(
            GamePadState state, CInputXBOX360 entity,
            CInputXBOX360.CPrivateMembers privateMembers, GameTime gameTime)
        {
            privateMembers.axisVector = vectorGetter(state.ThumbSticks);
            for (int i = buttons.Length; --i >= 0;)
            {
                entity.dirInputState[i].refresh(state.IsButtonDown(buttons[i]));
            }
            EDirectionFlags axisFlags;

            CHelper.createVector(entity.dirInputState, out axisFlags);
            privateMembers.axisFlag = axisFlags;
        }
Exemple #3
0
        //* ────________________________________*
        //* methods ───────────────────────────────-*

        //* -----------------------------------------------------------------------*
        /// <summary>方向ボタンの状態を更新します。</summary>
        ///
        /// <param name="state">最新の入力情報。</param>
        /// <param name="entity">この状態を適用されているオブジェクト。</param>
        /// <param name="privateMembers">
        /// オブジェクトと状態クラスのみがアクセス可能なフィールド。
        /// </param>
        /// <param name="gameTime">前フレームが開始してからの経過時間。</param>
        protected override void refleshAxis(
            GamePadState state, CInputXBOX360 entity,
            CInputXBOX360.CPrivateMembers privateMembers, GameTime gameTime)
        {
            GamePadDPad dpad = state.DPad;

            for (int i = entity.dirInputState.Length; --i >= 0;)
            {
                entity.dirInputState[i].refresh(matchList[i](dpad));
            }
            EDirectionFlags axisFlags;
            Vector2         axisVector;

            CHelper.createVector(entity.dirInputState, out axisVector, out axisFlags);
            privateMembers.axisVector = axisVector;
            privateMembers.axisFlag   = axisFlags;
        }
        //* ────________________________________*
        //* methods ───────────────────────────────-*

        //* -----------------------------------------------------------------------*
        /// <summary>方向ボタンの状態を更新します。</summary>
        /// <remarks>この状態では方向ボタンを持たないので、何も処理しません。</remarks>
        ///
        /// <param name="state">最新の入力情報。</param>
        /// <param name="entity">この状態を適用されているオブジェクト。</param>
        /// <param name="privateMembers">
        /// オブジェクトと状態クラスのみがアクセス可能なフィールド。
        /// </param>
        /// <param name="gameTime">前フレームが開始してからの経過時間。</param>
        protected override void refleshAxis(
            GamePadState state, CInputXBOX360 entity,
            CInputXBOX360.CPrivateMembers privateMembers, GameTime gameTime)
        {
        }