Forum » Programiranje » [C#] Runaway Button
[C#] Runaway Button
GangStarr ::
Pozdravljeni!
Prosim vas za pomoč pri spodnjem programu:
1. navodila
Make a runaway button that should always be entirely contained in the form and should stay as close to the mouse pointer as possible without giving the possibility to be clicked.
2. moj program
Kar naredi moj program je, da generira gumb na naključni poziciji, kar pa ni blizu kazalca miške kot zahteva navodilo. Kaj moram spremenit v MouseMove eventu, da bo pravilno deloval? Vem, da je nekaj v povezavi z e.X in e.Y koordinato...
Prosim & hvala.
Prosim vas za pomoč pri spodnjem programu:
1. navodila
Make a runaway button that should always be entirely contained in the form and should stay as close to the mouse pointer as possible without giving the possibility to be clicked.
2. moj program
public partial class Form1 : Form { int i = 0; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { successLabel.Visible = true; button1.Enabled = false; } private void Form1_Click(object sender, EventArgs e) { if (successLabel.Visible == false) missedLabel.Visible = true; } private void Form1_Load(object sender, EventArgs e) { successLabel.Visible = missedLabel.Visible = false; timer1.Enabled = true; progressBar1.Value = progressBar1.Minimum; } private void timer1_Tick(object sender, EventArgs e) { timer1.Interval = 1000; if (progressBar1.Value == progressBar1.Maximum) { gameOverLabel.Visible = true; this.Enabled = false; timer1.Enabled = false; Form1_MouseClick(sender, e); } else { gameOverLabel.Visible = false; progressBar1.PerformStep(); } } private void Form1_MouseClick(object sender, EventArgs e) { i++; gameOverLabel.Text = "Game over, you failed! " + Environment.NewLine + "Clicks: " + i.ToString(); } private void button1_MouseMove(object sender, MouseEventArgs e) { missedLabel.Visible = false; int x, y; Point formClientSize = new Point(ClientSize); Random rnd = new Random(); do { x = rnd.Next(0, formClientSize.X - button1.Width); } while (x >= button1.Left - button1.Width && x <= button1.Right); do { y = rnd.Next(0, formClientSize.Y - button1.Height); } while (y >= button1.Top - button1.Height && y <= button1.Bottom); button1.Location = new Point(x, y); } }
Kar naredi moj program je, da generira gumb na naključni poziciji, kar pa ni blizu kazalca miške kot zahteva navodilo. Kaj moram spremenit v MouseMove eventu, da bo pravilno deloval? Vem, da je nekaj v povezavi z e.X in e.Y koordinato...
Prosim & hvala.
Semper Fi
Yacked2 ::
Če prav razumem rabiš plavajoč button, ki bo čim bližje pointerja, ampak malo zamaknjen, tako da se ga ne bo dalo kliknit ?
Na on mouseMove Event spremeni lokacijo gumba tako da vzameš x in y koordinato poinerja in nato po potrebi +- nekaj pik, tako da klik ne bo mogoč, enako narediš onLoad, da to velja že od začetka
Na on mouseMove Event spremeni lokacijo gumba tako da vzameš x in y koordinato poinerja in nato po potrebi +- nekaj pik, tako da klik ne bo mogoč, enako narediš onLoad, da to velja že od začetka
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
GangStarr ::
Če se ti da bi te prosil, da mi napišeš ta del kode oz. stavek ker ne razumem najbolj...
Semper Fi
Yacked2 ::
Na formi imaš event viewer oz. nekaj takega (tam kjer lahko preklopiš med lastnostmi in eno tako strelo). Nato poiščeš event "mouse move" oz. "poinet move" nekaj takega. Dvakrat klikneš nanj in generira se del kode, ki se bo sprožil ob premiku miške na formi.
Sedaj v temu delu napišemo nekaj v smislu:
Namesto nekaj1 in nekaj2, pa poiskusi spremeniti vrednosti (najprej poiskusi z 0), torej Point(e.X, e.Y), pa boš videl kako se obnaša.
Sedaj v temu delu napišemo nekaj v smislu:
button1.Location = new Point(e.X +- nekaj1 , e.Y +- nekaj2);
Namesto nekaj1 in nekaj2, pa poiskusi spremeniti vrednosti (najprej poiskusi z 0), torej Point(e.X, e.Y), pa boš videl kako se obnaša.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] picturebox, slika na slikoOddelek: Programiranje | 1085 (895) | japol |
» | kako narediti program ki bere drugi programOddelek: Programiranje | 5757 (4070) | imagodei |
» | C# PomočOddelek: Programiranje | 1403 (1228) | jizzer |
» | Pomoč pri programu!Oddelek: Programiranje | 1427 (1285) | Mitja Bonča |
» | c# ... kako je to mozno da Windows.Forms.Timer na istem threadu vec msg boxov pozeneOddelek: Programiranje | 1323 (1282) | Vapo1 |