public Bus(IVehicle.Physics p) { length = (GlobalRandom.Instance.Next(2) == 0) ? 120 : 180; _physics = p; color = Color.FromArgb(GlobalRandom.Instance.Next(256), GlobalRandom.Instance.Next(256), GlobalRandom.Instance.Next(256)); _vehicleType = VehicleTypes.BUS; // maximale Beschleunigung a = 0.9; // komfortable Bremsverzögerung b = 1.0; }
public Tram(IVehicle.Physics p) { length = (GlobalRandom.Instance.Next(2) == 0) ? 250 : 400; _physics = p; color = Color.FromArgb(GlobalRandom.Instance.Next(256), GlobalRandom.Instance.Next(256), GlobalRandom.Instance.Next(256)); // maximale Beschleunigung a = 1.0; // komfortable Bremsverzögerung b = 1.0; _vehicleType = VehicleTypes.TRAM; }
public Car(IVehicle.Physics p) { length = GlobalRandom.Instance.Next(28, 45); _physics = p; // etwas Zufall: a *= (GlobalRandom.Instance.NextDouble() + 0.5); b *= (GlobalRandom.Instance.NextDouble() + 0.5); s0 *= (GlobalRandom.Instance.NextDouble() + 0.5); T *= (GlobalRandom.Instance.NextDouble() + 0.5); _physics.targetVelocity += ((GlobalRandom.Instance.NextDouble() - 0.5) * 4); color = Color.FromArgb(GlobalRandom.Instance.Next(256), GlobalRandom.Instance.Next(256), GlobalRandom.Instance.Next(256)); _vehicleType = VehicleTypes.CAR; }
/// <summary> /// Lässt ein Auto am startNode losfahren /// </summary> /// <returns>true, if Vehicle was successfully created - otherwise false</returns> private bool CreateVehicle() { IVehicle.Physics p = new IVehicle.Physics(m_wunschgeschwindigkeit, m_wunschgeschwindigkeit, 0); IVehicle v = null; switch (m_vehicleType) { case IVehicle.VehicleTypes.CAR: if (GlobalRandom.Instance.Next(100) < truckRatio) { v = new Truck(p); } else { v = new Car(p); } break; case IVehicle.VehicleTypes.TRAM: v = new Tram(p); break; case IVehicle.VehicleTypes.BUS: v = new Bus(p); break; } // Neue Linie zum Weiterfahren bestimmen LineNode start = startNodes[GlobalRandom.Instance.Next(startNodes.Count)]; if (start.nextConnections.Count > 0) { int foo = GlobalRandom.Instance.Next(start.nextConnections.Count); IVehicle.State state = new IVehicle.State(start.nextConnections[foo], 0); v.state = state; v.targetNodes = endNodes; return(start.nextConnections[foo].AddVehicle(v)); } return(false); }
public Truck(IVehicle.Physics p) { length = (GlobalRandom.Instance.Next(2) == 0) ? 100 : 165; _physics = p; color = Color.FromArgb(GlobalRandom.Instance.Next(256), GlobalRandom.Instance.Next(256), GlobalRandom.Instance.Next(256)); // maximale Beschleunigung a = 0.6; // komfortable Bremsverzögerung b = 0.7; // etwas Zufall: a *= (GlobalRandom.Instance.NextDouble() + 0.5); b *= (GlobalRandom.Instance.NextDouble() + 0.5); s0 *= (GlobalRandom.Instance.NextDouble() + 0.5); T *= (GlobalRandom.Instance.NextDouble() + 0.5); _physics.targetVelocity += ((GlobalRandom.Instance.NextDouble() - 0.5) * 4); _vehicleType = VehicleTypes.CAR; }