Poceo sam da pravim igru u Pascalu i skoro je gotova. A kako je veci dio programa zavrsen odlucih da ga podijelim s' vama :). Znaci nije u pitanju igra jos uvijek vec interesantan program. Povecajte prozor (properties>font) na velicinu 10x18 kako bi program ljepse izgledao. Ne "stedite" zamjerke (ako ih ima), bice od koristi...Evo i download-a.
Igra u Pascalu... jos malo...
Zaključano
Zakačeno
Koliko mi se cini pre svakog iscrtavanja radis ClrScr. Zasto jednostavno ne nacrtas jednom okvir i posle samo crtas i brises lopticu?
Potpis
Pa i okvir i loptica su dio matrice velicine 10x20. Mozda malo komplikovano resenje ali ne vidim kako bih drugacije mogao da definisem ponasanje (odbijanje) loptice kad udari u okvir.
Za kretanje loptice ti uopste ne treba matrica.
Probaj ovako nesto:
Probaj ovako nesto:
Code:
Inicijalizacija
X := 5;
Y := 10; // pocetne koordinate
XP := 1;
YP := 1; // pravac kretanja
Procedure koja se pomavlja
Obrisi loptu na x, y
if (x=1) or (x=10) then
xp := -xp // ako je zid obrni pravac x
if (y=1) or (y=20) then
yp := -yp // ako je zid, obrni pravac y
x := x+xp
y := y+yp // uzmi nove vrednosti
Ispisi loptu na x,y
Inicijalizacija
X := 5;
Y := 10; // pocetne koordinate
XP := 1;
YP := 1; // pravac kretanja
Procedure koja se pomavlja
Obrisi loptu na x, y
if (x=1) or (x=10) then
xp := -xp // ako je zid obrni pravac x
if (y=1) or (y=20) then
yp := -yp // ako je zid, obrni pravac y
x := x+xp
y := y+yp // uzmi nove vrednosti
Ispisi loptu na x,y
Citat:
Toyo: Za kretanje loptice ti uopste ne treba matrica.
Probaj ovako nesto:
Probaj ovako nesto:
Code:
Inicijalizacija
X := 5;
Y := 10; // pocetne koordinate
XP := 1;
YP := 1; // pravac kretanja
Procedure koja se pomavlja
Obrisi loptu na x, y
if (x=1) or (x=10) then
xp := -xp // ako je zid obrni pravac x
if (y=1) or (y=20) then
yp := -yp // ako je zid, obrni pravac y
x := x+xp
y := y+yp // uzmi nove vrednosti
Ispisi loptu na x,y
Inicijalizacija
X := 5;
Y := 10; // pocetne koordinate
XP := 1;
YP := 1; // pravac kretanja
Procedure koja se pomavlja
Obrisi loptu na x, y
if (x=1) or (x=10) then
xp := -xp // ako je zid obrni pravac x
if (y=1) or (y=20) then
yp := -yp // ako je zid, obrni pravac y
x := x+xp
y := y+yp // uzmi nove vrednosti
Ispisi loptu na x,y
Znam da je moglo i drugacije da se uradi preko pozicioniranja kursora i cini mi se da
si ti (Toyo) na to mislio. Pretpostavljam da su X i Y koordinate kursora, ispravi me ako grijesim... Jedino sto ne postoje 2 pravca kretanja, a samim tim i 2 uslova (XP i YP) koja su kod tebe zapravo 4 zbog +/- vrijednosti koje mogu imati. Medjutim ima ih jos 4, jer za svaku od 4 strane postoje po 2 pravca kretanja sto ih cini ukupno 8.
Primer koji ti je Toyo dao pomera lopticu u svih 8 smerova. Pogledaj kod malo bolje