Zadatak:

Kreirati igricu - aplikaciju u kojoj će korisnik da klikom na sličicu (pčelica) prouzrokovati da se ista pomeri. Opciono, sakupljati bodove pri tome.

Jedna vrsta rešenja:


  • Kreirati novu Windows Forms Aplikaciju, nazvati je npr. pcelica, u svom folderu na disku
  • U Toolbox-u pronaći PictureBox i postaviti na formu: mala strelica na okviru omogućava postavljanje željene slike u box ( prvo Size Mode - StretchImage, a zatim : Choose Image... - Local resourse - Import...)  --- smanjite ili povećajte sliku po željij
  • U mogućim akcijama za sliku , pronaći akciju za klik mišem (Click) i dvoklikom se kreira okvir koda gde se piše šta se dešava kada se klikne na sliku. (isto bi se dobilo direktnim dvoklikom na sliku)
  • Programski kod koji na početku unosimo je da se naša pčelica sa svakim klikom pomeri desno i dole za 10 piksela (u ovom slučaju to je prvi PictureBox i ostavljeno je default ime koje nismo menjali - kod vas može da se drugačije zove - upotrebite odgovarajuće ime za vaš PictureBox):
pictureBox1.Left += 10;
pictureBox1.Top += 10;

Primetićete da, ako ste sve uradili kako treba, vaša pčelica se kreće na desno i na dole sa svakim klikom na nju, sve dok ne počne da izlazi sa ekrana - što nam se baš i ne dopada. Postoji više rešenja kako rešiti taj mali problem:

Rešenje br.1: ako pčelica dođe do donje ili desne ivice forme u kojoj je, teleportovati je na početak forme. To se rešava tako što se nakon pomeranja proveri da li je lokacija stigla do ivice forme,pa ako jeste, postaviti lokaciju slike na x=0 i y=0:

if((pictureBox1.Right >= this.Width) || (pictureBox1.Bottom >= this.Height))
{
pictureBox1.Left = 0;
pictureBox1.Top = 0;
}

U suštini provera je da li je desna ivica slike stigla na desni kraj forme ili je donja ivica slike stigla na dno forme. Ako je bilo koji od ta dva uslova zadovoljen (ligičko ili između njih :|| ) postavlja se da je slika na početku.

Rešenje br.2: umesto provere dokle je stigla, i umesti stalnog kretanja u istom pravcu, može se postaviti da se prilikom klika na sliku pčelica teleportuje na neku slučajnu poziciju na formi. U tom slučaju koristimo objekat klase Random:

private void pictureBox1_Click(object sender, EventArgs e)
{
Random R = new Random();
var opseg = this.Size - pictureBox1.Size;
var odLevo = R.Next(0, opseg.Width);
var odGore = R.Next(0, opseg.Height);
pictureBox1.Location = new Point(odLevo, odGore);
}
  • Kako sakupljati bodove? Jednostavno, treba nam celobrojna promenljiva koja će za svaki klik na pčelicu da se uveća za na primer 10.
  • Kako prikazati bodove? Pomoću labele. Upotrebiti na primer 2 labele. u label1 upisati tekst bodovi: , a u label2, koji se nalazi odmah pored, prilikom svakog klika na pčelicu, upisati kao tekst bodove.


Last modified: Monday, 10 February 2020, 8:40 PM