2016-04-11 18 views
0

Ich mache ein Programm, das zufällig generierte Größen von Kreisen, wo Sie klicken, zeichnet. Wenn du deine Maus bewegst, klickst du auf den linken Knopf, dann verlässt sie die Spur von zufälligen Kreisen.Wie bekomme ich einen fortlaufenden Nummerngenerator?

Ich möchte jedoch diese Kreise, wenn Sie die Maus bewegen, größer als kleiner werden. Beginnen Sie zum Beispiel mit einem Kreis mit der Größe 20, erhöhen Sie ihn um eins, so dass der nächste Kreis 21 als 22 ist. Als wenn es 80 erreicht, drehen Sie es um und gehen Sie 80, 79,78,77,76 ect.

Dies ist der Code für den zufällig generierten Kreis.

Ich habe ein paar verschiedene Möglichkeiten ausprobiert, bin aber nur ein Lerner. Danke für jede Hilfe, die Sie geben können.

private void pictureBox1_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Left) 
     { 
      Random rand = new Random(); 

      int width = this.ClientSize.Width; 
      int length = this.ClientSize.Height; 
      Graphics paper = pictureBox1.CreateGraphics(); 
      Pen pen = new Pen(colorDialog1.Color, 2); 

      int sizeCircle = rand.Next(20, 80); 

      int mouseX = e.X - (sizeCircle/2) ; 
      int mouseY = e.Y - (sizeCircle/2) ; 

      paper.DrawEllipse(pen, mouseX, mouseY, sizeCircle, sizeCircle); 
+0

Ihre Frage nicht klar ist, Genug, du willst statt "sizeCircle" aufeinanderfolgende Zahlen für zufällige vergeben, hab ich recht? –

+0

Ja. Statt dass jede nächste Zahl zufällig ist. Ich möchte, dass jede nächste Zahl eine höher ist als die letzte. Als wenn es 80 erreicht, drehen Sie sich um und machen Sie die nächste Zahl kleiner als die vorherige. –

Antwort

0

Vielleicht können Sie so etwas wie dieses versuchen ...

Erklären Sie Ihre Größe Variable außerhalb des Event-Handler, so dass Sie den Überblick über seinen Wert halten kann ..

bool enlarge = true; // flag to identitify if the size should enlarge or not 
int circle_size = 10; // initial size 
int circle_size_change = 5; // size value change 
int max_size = 80; // max size 
int min_size = 10; // min size 
private void pictureBox1_MouseMove(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Left) 
    { 
     Random rand = new Random(); 

     int width = this.ClientSize.Width; 
     int length = this.ClientSize.Height; 
     Graphics paper = pictureBox1.CreateGraphics(); 
     Pen pen = new Pen(colorDialog1.Color, 2); 

     if(enlarge) 
     { 
      if(circle_size + circle_size_change > max_size) 
      { 
       enlarge = false; 
      } 
     } 
     else 
     { 
      if(circle_size - circle_size_change < min_size) 
      { 
       enlarge = true;  
      } 
     } 

     circle_size = enlarge ? circle_size + circle_size_change : circle_size - circle_size_change; 

     int mouseX = e.X - (circle_size/2) ; 
     int mouseY = e.Y - (circle_size/2) ; 

     paper.DrawEllipse(pen, mouseX, mouseY, sizeCircle, sizeCircle);