コード例 #1
0
ファイル: Player.cs プロジェクト: Jun-Takahashi/MagicAction
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="gameTime"></param>
        public override void Update(GameTime gameTime)
        {
            if ((isJump == false) &&
                (Input.GetKeyTrigger(Keys.Space) ||
                 Input.GetKeyTrigger(PlayerIndex.One, Buttons.B)))
            {
                velocity.Y = -10.0f;
                isJump     = true;
            }
            else
            {
                //ジャンプ中だけ落下
                velocity.Y = velocity.Y + 0.4f;
                //落下速度制限
                velocity.Y = (velocity.Y > 16.0f) ? (16.0f) : (velocity.Y);
            }
            float speed = 4.0f;

            //横方向の移動量の計算
            velocity.X = Input.Velocity().X *speed + Input.Velocity(PlayerIndex.One).X *
                         speed;

            if (velocity.X > 0.0f)
            {
                rightFlag = true;
            }
            else if (velocity.X < 0.0f)
            {
                rightFlag = false;
            }

            if (Input.GetKeyState(Keys.Z))
            {
                chage = new Vector2(0, a--);
            }

            if (Input.GetKeyRelease(Keys.Z))
            {
                if (rightFlag == true)
                {
                    mediator.AddGameObject(new Magic(position + chage + new Vector2(40, 25), gameDevice, mediator));
                }
                if (rightFlag == false)
                {
                    mediator.AddGameObject(new leftMagic(position + chage + new Vector2(-10, 25), gameDevice, mediator));
                }
                a = 0;
            }

            //位置の計算
            position = position + velocity;

            //プレイヤーの位置を画面の中心に位置補正する
            setDisplayModify();
        }
コード例 #2
0
        public override void Update(GameTime gameTime)
        {
            switch (state)
            {
            case CharaState.Normal:
                ai.Attack();
                Position = ai.Move();
                break;

            case CharaState.Damage:
                DamageUpdate(gameTime);
                break;

            case CharaState.Delete:
                isDeadFlag = true;
                mediator.AddGameObject(new SmokeEffect(Position, gameDevice));
                break;
            }
            //ai.Attack();
            //Position = ai.Move();

            //【追加】
            velocity = ai.Velocity();
            UpdateMyDirection();
            if (aiName == AIName.Shot)
            {
                UpdateShotMyDir();
            }
            currentMotion.Update(gameTime);
        }
コード例 #3
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="gameTime"></param>
        public override void Update(GameTime gameTime)
        {
            timer.Update(gameTime);
            if (timer.IsTime())
            {
                mediator.AddGameObject(new Flame(Position + new Vector2(0, -128), gameDevice, 1.0f));

                timer.Initialize();
            }
        }