WebProg-2014/Gyakorlat3
(Új oldal, tartalma: „=== Mindenek elõtt === Hozzatok létre egy új projectet '''Asteroids''' néven. Hozzatok benne létre egy '''asteroids''' package-et. Majd töltsétek le [http://mat…”)
Újabb szerkesztés →
A lap 2015. február 25., 04:45-kori változata
Tartalomjegyzék |
Mindenek elõtt
Hozzatok létre egy új projectet Asteroids néven. Hozzatok benne létre egy asteroids package-et. Majd töltsétek le innen a hiányos java file-okat.
1. Asteroid
Egészítsétek ki az Asteroid osztályt, mely reprezentálni fogja a játékban az aszteroidákat. A következõ (privát) adattagjai vannak:
- position: használja a korábban megírt Position-t
- size: egész szám
A következõ metódusokat kellene megírni hozzá:
- konstruktorok
- default
- Position és int-bõl
- két float és egy int-bõl
Ha a konstruktorokat megírtátok az a jutalmatok, hogy elindul a játék, ha az AsteroidsGame osztályt megnyitjátok és futtatjátok. Ahhoz, hogy történjen is valami, meg kell írni még a további metódusot:
- move:
- nem ad vissza semmit
- kap két float-ot x és y-t
- eltolja az aszteroida pozícióját az (x, y) vektorral.
2. SpaceShip
Egészítsétek ki a SpaceShip osztályt, mely a játékos ûrhajóját reprezentálja. A következõ (privát) adattagjai vannak:
- position: használja a korábban megírt Position-t
- rotation: float ami tárolja fokokban, hogy mennyire van elforgatva a hajó
A konstruktor már meg van írva, a következõ metódusokat kellene megírni, ha ezek megvannak akkor a billentyûzet nyilaival lehet irányítani a hajót, space-el lehet lõni:
- move:
- nem ad vissza semmit
- kap két float-ot x és y-t
- eltolja az ûrhajó pozícióját az (x, y) vektorral.
- turn:
- nem ad vissza semmit
- kap egy float-ot
- a kapott float-al elforgatja a hajót (az eddigi rotációhoz hozzáveszi a kapottat), vigyázva arra, hogy 360 fok föle sose menjen (ekkor ugorjon vissza 0 fokra).
- accelerate:
- nem ad vissza semmit
- kap egy float-ot
- a kapott float hosszú, rotation irányú vektorral eltolja a hajót, használva a Math.cos(Math.toRadians(?)) és Math.sin(Math.toRadians(?)) függvényeket.
3. További kiegészítések
Írjátok meg az Asteroid utolsó hiányzó metódusát:
- destroy:
- egy aszteroida tömböt ad vissza
- nem kap semmit
- az elõadáson látotthoz hasonló aszteroida szétesést valósítja meg, azaz létrehoz annyi új eggyel kisebb aszteroidát amekkora a mérete és visszaadja ezek tömbjét. Igaz ez nem a legjobb megoldás, de most legyenek mind az eredeti aszteroida pozícióján.
- Ne zavarjon meg, hogy AsteroidExtended-et ad vissza, ezt kezeljétek úgy, mintha simán Asteroid lenne.