Ejemplo n.º 1
0
        public void ControllerUpdate(float leftTrigger, float rightTrigger, Vector2 leftStickDirection, Vector2 rightStickDirection)
        {
            if (Stunned || !IsAlive)
            {
                return;
            }

            if (Math.Abs(leftStickDirection.Length()) > CodingConstants.JoystickTolerance)
            {
                Facing = leftStickDirection;
            }
            if (leftTrigger > CodingConstants.TriggerPress && Velocity.Length() > 0)
            {
                Facing = Facing.Rotate(180);
            }
            if (InputService.InputDevices[Player.PlayerIndex] is Keyboard)
            {
                if (rightStickDirection != Vector2.Zero)
                {
                    Facing = rightStickDirection;
                }
            }
            Velocity = leftStickDirection;
        }
Ejemplo n.º 2
0
 public void Rotate(Direction direction)
 {
     Facing = Facing.Rotate(direction);
     Arms   = RotateArms(direction);
 }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Day 1");
            Console.WriteLine("Star 1");
            Console.WriteLine();

            var instructions = File.ReadAllText(inputFile).Split(", ");
            //var instructions = "R8, R4, R4, R8".Split(", ");


            //Start facing north.
            Facing facing = Facing.North;

            (int x, int y)position = (0, 0);

            HashSet <(int x, int y)> visitedLocations = new HashSet <(int x, int y)>()
            {
                (0, 0)
            };

            bool found = false;

            (int x, int y)hqPos = (0, 0);

            foreach (string instruction in instructions)
            {
                switch (instruction[0])
                {
                case 'R':
                    facing = facing.Rotate(true);
                    break;

                case 'L':
                    facing = facing.Rotate(false);
                    break;

                default:
                    throw new ArgumentException($"Unexpected direction: {instruction[0]}");
                }

                int distance = int.Parse(instruction.Substring(1));

                foreach ((int x, int y)p in position.Move(facing, distance))
                {
                    if (!found)
                    {
                        if (!visitedLocations.Add(p))
                        {
                            found = true;
                            hqPos = p;
                        }
                    }
                }

                position = position.Move(facing, distance).Last();
            }

            Console.WriteLine($"Final distance: {Math.Abs(position.x) + Math.Abs(position.y)}");


            Console.WriteLine();
            Console.WriteLine("Star 2");
            Console.WriteLine();

            Console.WriteLine($"HQ Location: {Math.Abs(hqPos.x) + Math.Abs(hqPos.y)}");

            Console.WriteLine();
            Console.ReadKey();
        }
Ejemplo n.º 4
0
 private bool Unrotate()
 {
     Facing = Facing.Rotate(-1.5f);
     return(true);
 }
Ejemplo n.º 5
0
 private bool Rotate()
 {
     Facing = Facing.Rotate(1.5f);
     return(true);
 }