🍎 Jabučk 🍎

1. Class Kosara

 Ta class naredi in premika košaro, s katero loviš jabolka.  

◈ constructor:
- Sprejme spremenjivke x, y (položaj), a, b (širina in višina predmeta), speed (hitrost),
ter referenci na platno (canvas) in njegov kontekst za risanje (ctx).
Poleg tega pa košara sprejema dogodke premikanja miške z uporabo addEventListener.
◈ draw:
- Nariše košaro z več sloji za 3D učinek.
◈ move:
- Posodobi položaj košare (this.x) glede na položaj miške.
 

2. Class Jabolko

  
Ta class naredi in premika jabolka, ki jih mora igralec s košaro uloviti.

◈ constructor:
- Prav tako kot pri košari sprejme spremenjivke x, y (položaj), a, b (širina in višina predmeta),
speed (hitrost), ter referenci na platno (canvas) in njegov kontekst za risanje (ctx).
Novo jabolko se samodejno doda v globalni seznam allJabolko.
◈ draw:
- Nariše jabolko z več sloji pravokotnikov različnih barv za 3D učinek.
◈ move:
- Posodablja položaj jabolka tako, da ga premakne navzdol glede na hitrost (speed).
◈ collision:
- Preveri, če je jabolko zadelo košaro:
Če da: ponastavi jabolko na naključni položaj na vrhu in poveča rezultat (score).
Hkrati se poveča hitrost vseh jabolk.
- Če jabolko pade izven spodnjega roba platna:
Ponastavi hitrost vseh jabolk na začetno vrednost.
Ponastavi rezultat (score) na nič.
 

3. Globalne spremenljivke


 
	• Score: Beleži tvoj trenutni rezultat
• i: Vsak frame se poveča za 1dokler ne doseže limita (imax) takrat sproži jabolko da začne padati.
• imax: omejitev za števec i
• n: Pove katero jabolko se pojavi na vrhu ekrana in začne padat
 

4. Main loop


 Ta funkcija poganja igro in se izvaja neprestano z metodo requestAnimationFrame.  
1. Čiščenje in risanje ozadja:
- Počisti platno in nariše zeleno ozadje.
2. Premikanje in risanje jabolk:
- Gre skozi seznam allJabolko, premika, riše in preverja trke za vsako jabolko.
3. Nadzor hitrosti in pojava jabolk:
- Spreminja frekvenco pojavljanja jabolk glede na rezultat (spremenljivka imax).
4. Risanje košare:
- Riše košaro na podlagi trenutnega položaja.
5. Prikaz rezultata:
- Izpiše rezultat na vrhu zaslona.
6. Rekurzivno klicanje:
- Funkcija se ponovno zažene z requestAnimationFrame.
 


5. Potek igre

	1. Ko se igra zažene, se: 
- Nariše ozadje.
- Ustvari košara in začetna jabolka.
2. Jabolka začnejo padati, igralec pa košaro premika z miško.
3. Če jabolko zadane košaro:
- Rezultat se poveča.
- Hitrost jabolk se postopoma povečuje.
4. Če jabolko pade mimo košare:
- Rezultat se ponastavi.
- Hitrost jabolk se vrne na začetno vrednost.
 

Luka Novak, 2. b