コード例 #1
0
        private List<Vector2D> CreateFeelers(IMovingEntity vehicle)
        {
            List<Vector2D> feelers = new List<Vector2D>();
            var feelerLength = (vehicle.GetVelocity() * wallDetectionFeelerLengthMultiplier).GetLength();

            //Feeler pointing straight in front
            feelers.Add(vehicle.GetPosition() + vehicle.GetHeading() * feelerLength);

            //Feeler to left
            Vector2D angle = movingEntity.GetHeading().Rotate((float)(Math.PI / 2) * WallAvoidance.WallDetectionFeelerAngle);
            feelers.Add(vehicle.GetPosition() + angle * (feelerLength) / 1.5f);

            //Feel to right
            angle = movingEntity.GetHeading().Rotate(-(float)(Math.PI / 2) * WallAvoidance.WallDetectionFeelerAngle);
            feelers.Add(vehicle.GetPosition() + angle * (feelerLength) / 1.5f);

            return feelers;
        }