Пример #1
0
 public void Execute(ref CarState state)
 {
     // Use the middle of the track to minimize error
     state.PositionOnCenterTrack = DotsHighway.GetEquivalentDistance(
         state.PositionOnTrack, state.Lane, (DotsHighway.NumLanes - 1) * 0.5f);
     SpacePartition.AddCar(state.PositionOnCenterTrack, state.Lane, state.FwdSpeed);
 }
Пример #2
0
            public void Execute(ref CarState state)
            {
                //forward position
                var pos = state.PositionOnTrack + state.FwdSpeed * deltaTime;
                //lateral position
                var lane      = state.Lane + state.LeftSpeed * deltaTime;
                var roundLane = math.round(lane);

                lane = math.select(lane, roundLane, math.abs(roundLane - lane) < .0001f);

                pos = DotsHighway.GetEquivalentDistance(pos, state.Lane, lane);
                state.PositionOnTrack = pos;
                state.Lane            = lane;
            }