» »

[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
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
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:

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!

GangStarr ::

Ok, hvala.
Semper Fi


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] picturebox, slika na sliko

Oddelek: Programiranje
151007 (817) japol
»

kako narediti program ki bere drugi program

Oddelek: Programiranje
465375 (3688) imagodei
»

C# Pomoč

Oddelek: Programiranje
131310 (1135) jizzer
»

Pomoč pri programu!

Oddelek: Programiranje
81332 (1190) Mitja Bonča
»

c# ... kako je to mozno da Windows.Forms.Timer na istem threadu vec msg boxov pozene

Oddelek: Programiranje
51250 (1209) Vapo1

Več podobnih tem