Пример #1
0
 private void UpdateVehicle(Tile t, Vehicle v)
 {
     if (v.Speed == 0)
         waitingCars--;
     v.Speed = t.MaxSpeed + extraSpeed;
     //if vehicle has to dissapear ----- moet worden vervangen door zwart vlak over de spawner-----
     if (VehicleIsOnEndSpawner(v, t))
     {
         simControl.simulationMap.GetTileMea(t.position.X, t.position.Y).RemoveVehicle(simControl, v, v.Direction, v.LastDirection, v.Lane);
         simControl.totalCars--;
     }
     if (StaysOnTile(t, v))//if vehicle is still on the tile 
     {
         if (DistanceFromCars(t, v))
         {
             //if there are other cars standing in front
             v.Update(t);
         }
         else
         {
             v.Speed = 0;
             waitingCars++;
         }
     }
     else
     {
         if (t.Access[v.NextDirection - 1, v.Lane])//if the next tile is accessible
         {
             //remove vehicle from old tile and add vehicle to new tile
             Tile[] test = simControl.simulationMap.GetSurroundingTilesSim(t.position);
             //simControl.simulationMap.GetTile(t.position).RemoveVehicle(simControl, v, v.LastDirection, v.Lane);
             Tile nextTile = simControl.simulationMap.GetSurroundingTilesSim(t.position)[v.NextDirection - 1];
             simControl.simulationMap.GetTile(t.position).RemoveVehicle(simControl, v, v.Direction, v.Direction, v.oldLane);
             v.reset();
             int oldLane = v.Lane;
             if (nextTile != null)
             {
                 v.Speed = nextTile.maxSpeed;
                 v.LastDirection = v.Direction;
                 v.Direction = v.NextDirection;
                 v.oldLane = v.Lane;
                 nextTile.AddVehicle(simControl, v, v.Direction, v.Lane);
                 GetRandomOutDirection(nextTile, v);
                 v.endPosition = GetEndPosition(nextTile, v);
                 v.Update(nextTile);
             }
             
             
             
         }
         else
         {
             v.Speed = 0;
             waitingCars++;
         }
     }
 }