private void trainSpawnTimer_Tick(object sender, EventArgs e) { if (random.Next(0, 2) == 0) { lastTrain = new RedTrain(new Point(223, 418)); if (random.Next(5) == 0) { lastTrain = new GreenTrain(new Point(223, 418)); } lastTrain.FaceTo(new Point(223, 0)); } else { lastTrain = new RedTrain(new Point(174, 0)); if (random.Next(5) == 0) { lastTrain = new GreenTrain(new Point(174, 0)); } lastTrain.FaceTo(new Point(174, 418)); } Intersection.AddRoadUser(lastTrain); trainSpawnTimer.Stop(); }
/// <summary> /// Bepalen maakt een bocht op gegeven locatie /// </summary> /// <param name="roadUser"></param>de roaduser waar het om gaat</param> /// <param name="P"></param>het punt waar de roaduser zich bevind</param> /// <param name="X1"></param>de X van het punt waar de bocht plaatsvindt</param> /// <param name="Y1"></param>de Y van het punt waar de bocht plaatsvindt</param> /// <param name="X2"></param>de X van het punt waar de auto naar toe moet wijzen</param> /// <param name="Y2"></param>de Y van het punt waar de auto naar toe moet wijzen</param> protected virtual void Type4Turn(RoadUser roadUser, Point P, int turnLocationX, int turnLocationY, int faceX, int faceY) { if (P.X == turnLocationX && P.Y == turnLocationY) { roadUser.FaceTo(new Point(faceX, faceY)); } }
protected override void Type4Turn(RoadUser roadUser, Point P, int X1, int Y1, int X2, int Y2) { if (P.X == X1 && P.Y <= Y1) { roadUser.FaceTo(new Point(X2, Y2)); } }
/// <summary> /// Bepalen om een bocht te maken met een kans van 1 op 4 /// </summary> /// <param name="roadUser">de roaduser waar het om gaat</param> /// <param name="P"> het punt waar de roaduser zich bevind</param> /// <param name="turnLocationX"> de X van het punt waar de bocht moet plaatsvinden</param> /// <param name="turnLocationY"> de Y van het punt waar de bocht moet plaatsvinden</param> /// <param name="faceX"> de X van het punt waar de auto naar toe moet wijzen indien hij een bocht maakt</param> /// <param name="faceY"> de Y van het punt waar de auto naar toe moet wijzen indien hij een bocht maakt</param> protected void Type3Turn(RoadUser roadUser, Point P, int turnLocationX, int turnLocationY, int faceX, int faceY) { if (P.X == turnLocationX && P.Y == turnLocationY) { if (random.Next(0, 3) == 1) { roadUser.FaceTo(new Point(faceX, faceY)); } } }
/// <summary> /// methode die gebruikt wordt om roadUsers van het ene kruispunt naar het andere over te zetten /// </summary> /// <param name="roadUser">de roadUser waar het om gaat</param> /// <param name="leaveX">de X positie waar wordt gedetecteerd of een auto het kruispunt gaat verlaten</param> /// <param name="leaveY">de Y positie waar wordt gedetecteerd of een auto het kruispunt gaat verlaten</param> /// <param name="spawnX">de X positie waar de nieuwe roadUser wordt gemaakt</param> /// <param name="spawnY">de Y positie waar de nieuwe roadUser wordt gemaakt</param> /// <param name="faceToX">de X positie waarde nieuwe roadUser naar toe moet wijzen</param> /// <param name="faceToY">de Y positie waarde nieuwe roadUser naar toe moet wijzen</param> private void TransferCarMethod(RoadUser roadUser, int leaveX, int leaveY, int spawnX, int spawnY, int faceToX, int faceToY) { Point P = roadUser.Location; if (IntersectionBottom != null && P.X == leaveX && P.Y == 382) { RoadUser newRoadUser = pickCorrectRoadUser(roadUser, spawnX, spawnY); if (newRoadUser != null) { newRoadUser.FaceTo(new Point(faceToX, faceToY)); IntersectionBottom.AddRoadUser(newRoadUser); } } else if (IntersectionLeft != null && P.X == 18 && P.Y == leaveY) { RoadUser newRoadUser = pickCorrectRoadUser(roadUser, spawnX, spawnY); if (newRoadUser != null) { newRoadUser.FaceTo(new Point(faceToX, faceToY)); IntersectionLeft.AddRoadUser(newRoadUser); } } else if (IntersectionRight != null && P.X == 382 && P.Y == leaveY) { RoadUser newRoadUser = pickCorrectRoadUser(roadUser, spawnX, spawnY); if (newRoadUser != null) { newRoadUser.FaceTo(new Point(faceToX, faceToY)); IntersectionRight.AddRoadUser(newRoadUser); } } else if (IntersectionTop != null && P.X == leaveX && P.Y == 18) { RoadUser newRoadUser = pickCorrectRoadUser(roadUser, spawnX, spawnY); if (newRoadUser != null) { newRoadUser.FaceTo(new Point(faceToX, faceToY)); IntersectionTop.AddRoadUser(newRoadUser); } } }