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…”) |
|||
52. sor: | 52. sor: | ||
** 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. | ** 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. | ** Ne zavarjon meg, hogy '''AsteroidExtended'''-et ad vissza, ezt kezeljétek úgy, mintha simán '''Asteroid''' lenne. | ||
+ | |||
+ | Randomizálhatjátok az újonnan létrejövõ aszteroidák számát / méretét a Random osztály segítségével, egy példa: | ||
+ | |||
+ | <java> | ||
+ | Random rand = new Random(); | ||
+ | int randomInteger = rand.nextInt(); | ||
+ | float randomFloat = rand.nextFloat(); | ||
+ | </java> | ||
+ | |||
+ | Ha mindennel megvagytok és nem találtok már szépíteni valót a kódon nézzetek bele elõször hogyan mûködik a '''SpaceShipExtended''' osztály, ez talán a legolvashatóbb, majd az '''AsteroidExtended''', stb. |
A lap 2015. február 25., 04:52-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.
Randomizálhatjátok az újonnan létrejövõ aszteroidák számát / méretét a Random osztály segítségével, egy példa:
Random rand = new Random(); int randomInteger = rand.nextInt(); float randomFloat = rand.nextFloat();
Ha mindennel megvagytok és nem találtok már szépíteni valót a kódon nézzetek bele elõször hogyan mûködik a SpaceShipExtended osztály, ez talán a legolvashatóbb, majd az AsteroidExtended, stb.