Example #1
0
        protected override void Update(TimeSpan gameTime)
        {
            if (this.gamePlay.State == GameState.Intro)
            {
                return;
            }

            float time = (float)gameTime.TotalMilliseconds / 10;

            transform.Y += speed * time;

            // Shooting
            if (timeRatio > TimeSpan.Zero)
            {
                timeRatio -= gameTime;
            }
            else
            {
                timeRatio = shootRatio;
                gamePlay.ShootBullet(false, transform.X, transform.Y + 50, 0f, 10f);
            }

            // Reset position
            if (transform.Y > this.virtualScreenManager.VirtualHeight + transform.Rectangle.Height)
            {
                this.Reset();
            }
        }
        protected override void Update(TimeSpan gameTime)
        {
            var   keyboardState = WaveServices.Input.KeyboardState;
            float time          = (float)gameTime.TotalMilliseconds;

            this.speed *= 0.85f;

            if (keyboardState.IsKeyPressed(Keys.Left))
            {
                this.speed.X -= ACCELERATION.X * time;
            }

            if (keyboardState.IsKeyPressed(Keys.Right))
            {
                this.speed.X += ACCELERATION.X * time;
            }

            if (keyboardState.IsKeyPressed(Keys.Up))
            {
                this.speed.Y -= ACCELERATION.Y * time;
            }

            if (keyboardState.IsKeyPressed(Keys.Down))
            {
                this.speed.Y += ACCELERATION.Y * time;
            }

            if (this.leftJoystick.IsPressed)
            {
                this.speed += this.leftJoystick.Direction * time * 0.01f;
            }

            if (this.speed.X > MAXSPEED)
            {
                this.speed.X          = MAXSPEED;
                this.Transform.Effect = SpriteEffects.FlipHorizontally;
            }
            else if (this.speed.X < -MAXSPEED)
            {
                this.speed.X          = -MAXSPEED;
                this.Transform.Effect = SpriteEffects.None;
            }

            if (this.speed.Y > MAXSPEED)
            {
                this.speed.Y = MAXSPEED;
            }
            else if (this.speed.Y < -MAXSPEED)
            {
                this.speed.Y = -MAXSPEED;
            }

            // Shooting
            if (timeRatio > TimeSpan.Zero)
            {
                timeRatio -= gameTime;
            }

            this.Transform.X += this.speed.X * time;
            this.Transform.Y += this.speed.Y * time;

            this.Transform.XScale = 1 - ((float)Math.Abs(this.speed.X * 0.4f));

            var shooting = keyboardState.IsKeyPressed(Keys.Space) || this.fireButton.IsPressed;

            if (shooting && timeRatio <= TimeSpan.Zero)
            {
                timeRatio = shootRatio;
                gamePlay.ShootBullet(true, Transform.X, Transform.Y, 0f, -15f);
            }

            // Bounds check
            if (Transform.X < 0)
            {
                Transform.X  = 0;
                this.speed.X = 0;
            }

            if (Transform.Y < 0)
            {
                Transform.Y  = 0;
                this.speed.Y = 0;
            }

            if (Transform.X > this.virtualScreenManager.VirtualWidth)
            {
                this.speed.X = 0;
                Transform.X  = this.virtualScreenManager.VirtualWidth;
            }

            if (Transform.Y > this.virtualScreenManager.VirtualHeight)
            {
                this.speed.Y = 0;
                Transform.Y  = this.virtualScreenManager.VirtualHeight;
            }
        }