#1 4. März 2015 Hallo, ich möchte ein Programm machen, was beim Start eine Anzahl von Rechtecken erstellt, die zufällig groß sind, und sich in eine zufällige Richtung bewegen. Und wenn sie sich treffen soll ein Effekt kommen. Jedoch habe ich von C# so gut wie keine Erfahrung, nur einge in C/C++. Ich bin bis jetzt nur soweit gekommen, das ich eine Form habe, und wenn ich ein Start Button drücke, werden eine Anzahl von Rechtecken erstellt, aber jedoch auch nur in einer bestimmten Richtung. Und ich habe das Gefühl, das ich es falsch angehe. Ich will jetz nicht das Ihr mir ein fertiges Programm schreibt, ehr das ihr mir evt sagt wie ich das mache, das sich Rechtecke an zufälliger Postion erscheinen, die eine zufällige Größe haben, und sich in einer zufälligen Geschwindigkeit bewegen. Hier mal mein bis jetzt geschriebener Code, ist nicht viel ... Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { start.Visible = false; Random sizex = new Random(); Random sizey = new Random(); Random posx = new Random(); Random posy = new Random(); // Rechteck for (int i = 1; i <= 15; i++) { Pen pen = new Pen(Color.White); CreateGraphics().DrawRectangle(pen, posx.Next(300), posy.Next(300), sizex.Next(100), sizey.Next(100)); } } } } Danke für jede Hilfe + Multi-Zitat Zitieren
#2 5. März 2015 AW: C# zufällig bewegende Objekte Wenn du die Rechtecke mit CreateGraphics() erzeugst hast du keine Möglichkeit diese Objekte irgendwie weiter zu verwenden (= zu bewegen), da das hierdurch erzeugte Grafikobjekt nur temporär exisitert (siehe: Control.CreateGraphics Method (System.Windows.Forms)) Du musst dir also erstmal eine "Rechteck" Klasse schreibe die die Informationen (Position, Größe, etc.) verwaltet und Zeichnet. Dass deine Rechtecke bei jedem WM_PAINT gezeichnet werden kannst du z.B. mit dem Überschreiber des OnPaint() Events (siehe z.B. The accursed PictureBox) Ansonsten ist der Ansatz doch nicht schlecht. Ein Random Objet reicht jedoch aus, du benötigst nicht für jede Variable eins. + Multi-Zitat Zitieren
#3 6. März 2015 AW: C# zufällig bewegende Objekte Hey, in C-sharp gibt es kleine Klasse, die sich "Random" nennt, damit kannst du ganz einfach Pseudo-Zufallszahlen berechnen lassen. Code: int Groeße; Random zufall = new Random(Initialisierungszahl); Groeße = zufall.Next(Untere Grenze, ausschl. obere Grenze); Das hast du ja soweit auch gemacht... Für die Anlegung der Objekte, würde ich mit einer Liste arbeiten und die dann mit "foreach" bearbeiten. Das bedeutet, leg mit einer for-Schleife so viele Pictureboxes an, wie du zufällig berechnet hast. Danach packst du sie alle in eine Liste und initialisierst sie mit foreach. + Multi-Zitat Zitieren