/// <summary> /// Kijk of opgegeven hardloper verder is dan de positie van de sensor. /// </summary> /// <param name="sender">De hardloper</param> /// <param name="positie">De positie van de hardloper</param> /// <returns>Stuurt terug of de hardloper nou wel of niet moet stoppen</returns> public bool controleerPositie(Hardloper sender, Double positie) { // Functie om de tijd om te zetten naar aantal secondes Func<long, double> afronden = tijd => (double)(tijd/1000000)/10; // Sensor 1 if (sender.sensor == 0 && window.imgSensor1.Margin.Left < positie) { sender.sensor++; // Voeg tijd aan de lijst toe window.sensor1Tijden.Items.Add("Hardloper: " + sender.id.ToString() + " - " + afronden(sender.setTime()).ToString() + " seconde"); } // Sensor 2 if (sender.sensor == 1 && window.imgSensor2.Margin.Left < positie) { sender.sensor++; // Voeg tijd aan de lijst toe window.sensor2Tijden.Items.Add("Hardloper: " + sender.id.ToString() + " - " + afronden(sender.setTime()).ToString() + " secondes"); } // Sensor 3 if (sender.sensor == 2 && window.imgSensor3.Margin.Left < positie) { sender.sensor++; // Voeg tijd aan de lijst toe window.sensor3Tijden.Items.Add("Hardloper: " + sender.id.ToString() + " - " + afronden(sender.setTime()).ToString() + " secondes"); } // Sensor 4 if (sender.sensor == 3 && window.imgSensor4.Margin.Left < positie) { if (firstHardloper == null) // Kijk of de hardloper als eerste is { firstHardloper = sender; sender.Gewonnen(); } else { sender.Verloren(); } sender.sensor++; window.sensor4Tijden.Items.Add("Hardloper: " + sender.id.ToString() + " - " + afronden(sender.setTime()).ToString() + " secondes"); } // Kijken of de hardloper moet stoppen (70pixels na de laatste sensor) if (sender.sensor == 4 && window.imgSensor4.Margin.Left + 70 < positie) { sender.sensor++; return (false); } return (sender.sensor < 5); // Als sensor onder de 5 is doorgaan en anders stoppen }
/// <summary> /// Als op de knop wordt gedrukt dan moet er een hardloper worden toegevoegd. /// </summary> /// <param name="sender">Het knopje</param> /// <param name="e">Nog wat extra informatie</param> private void btnHardloperToevoegen_Click(object sender, RoutedEventArgs e) { // Maak de image aan Image hardloperImg = new Image(); // Neem bijna alle eigenschappen over van het ontzichtbare plaatje hardloperImg.Source = image.Source; hardloperImg.Height = image.Height; hardloperImg.Width = image.Width; hardloperImg.HorizontalAlignment = HorizontalAlignment.Left; hardloperImg.VerticalAlignment = VerticalAlignment.Top; // Hoe ver het plaatje van de rand afzit. hardloperImg.Margin = new Thickness(12, lastHardloperTop, 0, 0); // Verhoog de variabel zodat het volgende plaatje iets meer naar onder komt te staan. lastHardloperTop += image.Height; // Maak een nieuwe hardloper class aan Hardloper hardloper = new Hardloper(ref hardloperImg, loopbaan) { id = hardloperId++ }; // Zet het plaatje op het scherm. mainGrid.Children.Add(hardloperImg); // Zet de hardloper in de baan loopbaan.Add(hardloper); }
/// <summary> /// Voeg een hardloper toe /// </summary> /// <param name="hardloper">De hardloper</param> public void Add(Hardloper hardloper) { this.hardlopers.Add(hardloper); }