08.maj: kreiranje vizuelne aplikacije: "mali pauk"
Zadatak:
Kreiramo igricu sa sledećim parametrima:
- sa vrha forme ka dnu silazi sličica (po vašem izboru - u priloženom zadatku je u pitanju pauk) ---( ili uzmite kapljica.png )
- ako se klikne na sličicu, dobija se 10 poena,
- postoje tasteri za
- zaustavljanje igre (Kraj)
- ponovno započinjanje igre
- pauza kretanja
- nastavljanje kretanja
- zatvaranje aplikacije
- poeni se prikazuju u gornjem levom delu forme
- postoji textBox za unos imena takmičara
Jedan od načina na koji se to može izvesti:
- Prvo se kreira novi projekat - Windows Forms ---
- Na Internetu potražimo sličicu koja će biti naš "glavni karakter"
- Na formu se postavlja PictureBox. Podrazumevani naziv je pictureBox1, i u njega postavljamo sličicu, sa modom za Stretch image
- u gornji levi deo forme postavljamo dve labele: u prvoj je tekst: bodovi:, a u drugu ćemo upisivati osvojene bodove, a u početku postavljamo 0.
Na formu postavljamo komponentu Timer: a prvi postavljeni ima podrazumevano ime timer1. Cilj je da se na tik-tak tajmera, na svaki njegov tik, naša slika pomeri malo na dole. To se radi tako što se za tajmerovo ponašanje postavi da je Enabled=true, a u događajima tajmera postoji Tick: dvoklikom na polje pored (ili dvoklikom na tajmer) kreiramo metodu koja se izvršava na svako tik tajmera (timer1_Tick). U toj metodi mi treba da pomeramo naš pictureBox1. Programski kod je dat u nastavku:
private void timer1_Tick(object sender, EventArgs e)
{
pictureBox1.Top += 10;
if (pictureBox1.Bottom > this.Height)
pictureBox1.Top = 0;
}
Ako ne želite da je nagla pojava cele slike, već da se polako pojavljuje sa vrha ekrana, tada se postavlja da je PictureBox1.Top u stvari - visina slike (-PictureBox1.Height) ili neki željeni broj piksela u minusu - da je iznad gornje ivice ekrana....
Što se bodova tiče, na našoj formi postavljamo parametar poeni, tipa int (i to pre konstruktora):
public partial class Form1 : Form
{
int poeni;
podrazumevana vrednost je 0 (u programskom jeziku C#), ali možemo i inicijalno da postavimo neku vrednost
Klik na sliku: napisati metodu koja će da se izvršava svaki put kada se klikne mišem na pictureBox. To možemo raditi tako što 1. kliknemo na sliku i u akcijama potražimo Click (ili dvoklik na samu sliku). Okruženje u kojem radimo u našem slučaju kreira osnovni izgled metode, a naše je samo da obezbedimo potrebne funkcionalnosti. Klikom na sliku treba da se povećaju bodovi, a slika da se pomeri negde na vrh forme:
private void pictureBox1_Click(object sender, EventArgs e)
{
poeni += 1;
lblPoeni.Text = poeni.ToString();
}
Dugme za završetak igre se radi tako što se postavi na formu jedno dugme (Button) u donji levi deo forme i u metodi za klik na dugme samo se zatvori forma. Metoda koja postoji je Close() i može se samo navesti, mada može i da se naglasi da se misli da se zatvori forma u kojoj ste:
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
ili
private void button1_Click(object sender, EventArgs e)
{
Close();
}
ili
private void button1_Click(object sender, EventArgs e)
{
Application.Exit();
}
Sada bi trebalo da naša igra radi.
Ostali dugmići:
- pauza: zaustavi tajmer
- nastavi: pokreni tajmer
- zaustavi igru: zaustavi tajmer i prikaži poene u MessageBox-u
- ponovo pokreni: poene postavi na 0, prikaz poena na 0, sliku na vrh i pokreni tajmer
Napomena: Čak i ako nemate kod kuće Visual Studio, možete direktno pokrenuti izvršni fajl koji se nalazi na:
maliPauk>WindowsFormsApplication1>WindowsFormsApplication1>bin>Debug>WindowsFormsApplication1.exe