Пример #1
0
        public void Reset(Track track, bool placeByIndex)
        {
            if (placeByIndex)
            {
                PathPoint pp;
                var       p = track.PathPosToPoint(-Index * 5, out pp);
                LookAt        = pp.Dir.Normalized();
                Pos           = p + LookAt.Rotate90() * 2 * (Index % 2 == 0 ? 1 : -1);
                CapturedPoint = pp;
            }
            else
            {
                Pos           = track.Points[0].Point;
                LookAt        = track.Points[0].Dir.Normalized();
                CapturedPoint = track.Points[0];
            }

            TotalCapturedLength = 0;
            Adhesion            = track.Adhesion;

            IsAlive      = true;
            IsOutOfTrack = false;
            IsOnGround   = true;
            Penalty      = 0;
        }