uciekający button

AA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

Witam ,
zaczynam uczyć się programowania w c#. Mam do zrobienia uciekającego buttona i mam dwa pytanka:

  1. jak mogłabym zablokować okienko, aby button nie uciekał mi poza okno?
  2. jak zrobić by lokalizacja była losowa w tym okienku? (teraz ucieka mi tylko po skosie :D )

byłabym wdzięczna za wszelkie podpowiedzi

ProCasher
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
1
  1. Można się obyć bez tego.
  2. Losujesz liczbę/liczby z określonego przedziału i w pętli przesuwasz button, dopóki jego x,y nie jest równe wylosowanym liczbom.
S7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
1

Napisz z jakiej technologii korzystasz (WinForms, WPF).

AA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

jak to napisać??? te losowe liczby? żeby te współrzędne były losowe?

Kopiuj
   private void guzik_MouseEnter(object sender, EventArgs e)
        {
            Random random = new Random();
            guzik.Location = new Point(x, y);
            x = random.Next(550, 350);
            y = random.Next(550, 350);
            foreach (int x in Point)
            {
                guzik.Location = new Point(x);
            }
        } 
Azarien
  • Rejestracja: dni
  • Ostatnio: dni
1
  1. new Random() powinno być przeniesione do zdarzenia Load formy, a sama zmienna Random random polem klasy formy.
  2. zamiast stałych liczb pobieraj Width i Height formy i odejmij od nich Width i Height przycisku - w ten sposób przycisk nie wyjedzie po za formę.
AA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

dlaczego mi w ogóle button ucieka? : D

Kopiuj
 
   private void guzik_MouseEnter(object sender, EventArgs e)
        {
            guzik.Location = new Point(x, y);
            x = 560 - guzik.Width;
            y = 360 - guzik.Height;
            
        }
AA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

dlaczego ucieka mi tylko na górnej części forma?

Kopiuj
 private void guzik_MouseEnter(object sender, EventArgs e)
        {
            guzik.Location = new Point(x, y);
            x = random.Next(350, 550);
            y = random.Next(350, 550);
            if (x > 550  ) 
            {
                x = 10;
            }
            if (y >350  )
            {
                y = 10;
            }
        } 
S7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
1

Chyba nie tylko na górnej części forma ale powinno być: "na prawej-górnej" ? :)

Sebastiano
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 488
2

Możesz to zrobić też tak:

Kopiuj
 private void button_MouseMove(object sender, MouseEventArgs e)
        {
            Random rnd = new Random();

            this.button.Location = new Point(rnd.Next(1, (this.Width - this.button.Size.Width - 10)), rnd.Next(1, (this.Height - this.button.Size.Height - 45)));
        }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.