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; } }