Example #1
0
        public void CalculateSafeRanges()
        {
            EncounteredObstacles.Add(91, true);

            bool    inRange      = false;
            Vector2 currentRange = new Vector2(0, 0);

            for (int i = 0; i <= 91; i++)
            {
                if (inRange)
                {
                    if (EncounteredObstacles[i])
                    {
                        inRange        = false;
                        currentRange.y = i;

                        if (currentRange.y - currentRange.x > BestRange.y - BestRange.x)
                        {
                            BestRange = currentRange;
                        }
                    }
                }
                else
                {
                    if (!EncounteredObstacles[i])
                    {
                        inRange        = true;
                        currentRange.x = i;
                    }
                }
            }

            CenterOfBestRange = BestRange.x + (BestRange.y - BestRange.x) / 2f;
        }
Example #2
0
 public void ScanBoardForObstacles()
 {
     for (int i = 0; i <= 90; i++)
     {
         RaycastHit hitInfo = new RaycastHit();
         if (Physics.Raycast(
                 new Vector3(
                     Board.BoardIntoWorld(-91.44f / 2f) + (Board.BoardIntoWorld(91.44f) * (i / 90f)),
                     0.003f,
                     Board.BoardIntoWorld(Direction * -91.44f / 2f)
                     ),
                 new Vector3(0, 0, Direction),
                 out hitInfo,
                 Board.BoardIntoWorld(91.44f / 2f)
                 )
             )
         {
             EncounteredObstacles.Add(i, true);
         }
         else
         {
             EncounteredObstacles.Add(i, false);
         }
     }
 }