Hallo zusammen,
ich habe mir vor kurzem das Buch C# von Kopf bis Fuß zugelegt.
Ich bin jetzt beim ersten Workshop angelangt. Dort soll ein Windhunderennen Programmiert werden.
Es gibt Objekte des Klasse Windhund. Diese haben unter anderem das Feld Bild welches auf eine PictuerBox zeigt.
Dies Bild soll auf meinem Formular von links nach rechts bewegt werden. dafür hat die Klasse die Methode Laufen().
Das klappt mit dem Code auch ganz gut. Allerdings nur für einen Hund nach dem anderen. Sie sollen aber alle gleichzeitig loslaufen.
Und genau da stecke ich grade irgendwie Fest.
Hier ist der Codefür die Klasse:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| namespace Ein_Tag_beim_Rennen { public class Windhund { public int Startposition = 30; public int RennbahnLänge = 600; public PictureBox Bild = null; public int Location; public Random Zufallszahl; public bool Laufen() { int distanz; Point p = Bild.Location; Zufallszahl = new Random(); while (true) { if(p.X < 570) { distanz = Zufallszahl.Next(5); p.X = p.X+ distanz; Bild.Location = p; System.Threading.Thread.Sleep(15); } else { return false; } }
}
public void StartpositionEinnehmen() { Point p = Bild.Location; p.X = Startposition; Bild.Location = p; } } } |
und für das Formular:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37:
| namespace Ein_Tag_beim_Rennen { public partial class Form1 : Form { public Form1() { InitializeComponent();
Spieler[] SpielerArray = new Spieler[3];
}
private void buttonRennen_Click(object sender, EventArgs e) { Random zufallszahl = new Random(); Windhund[] WindhundeArray = new Windhund[4]; WindhundeArray[0] = new Windhund() { Bild = pictureBoxHund1 }; WindhundeArray[1] = new Windhund() { Bild = pictureBoxHund2 }; WindhundeArray[2] = new Windhund() { Bild = pictureBoxHund3 }; WindhundeArray[3] = new Windhund() { Bild = pictureBoxHund4 };
WindhundeArray[0].Laufen(); WindhundeArray[1].Laufen(); WindhundeArray[2].Laufen(); WindhundeArray[3].Laufen(); } } } |
Mir ist schon klar warum die Hunde nacheinander loslaufen...
vielen Dank
DerRainer
Moderiert von
Christian S.: C#-Tags hinzugefügt
Hab die Lösung gefunden!