예제 #1
0
파일: Robot.cs 프로젝트: HaKDMoDz/shooter
        private void UpdateInput(EngineTime time)
        {
            var direction = Vector2.Zero;

            if (this.Engine.Keyboard.State.IsKeyDown(Keys.A))
            {
                direction -= Vector2.UnitX;
            }

            if (this.Engine.Keyboard.State.IsKeyDown(Keys.D))
            {
                direction += Vector2.UnitX;
            }

            if (this.Engine.Keyboard.State.IsKeyDown(Keys.W))
            {
                direction += Vector2.UnitY;
            }

            if (this.Engine.Keyboard.State.IsKeyDown(Keys.S))
            {
                direction -= Vector2.UnitY;
            }

            if (direction != Vector2.Zero)
            {
                direction.Normalize();
            }

            var attributes = new RobotTraits();

            powerups.RemoveAll((x) => x.ShouldRemove);

            foreach (var powerup in powerups)
            {
                powerup.Process(attributes);
            }

            direction *= attributes.AccelerationRate;

            this.body.LinearVelocity += direction * MaxLinearAcceleration * time.Elapsed;
        }
예제 #2
0
 public void Process(RobotTraits robot)
 {
     robot.AccelerationRate *= 2f;
 }