CV03 - Zadání - 1
Zadání úlohy na cvičení. pole, metody s proměnným počtem parametrů, foreach
Ufo
Z vašeho projektu z minulého cvičení nebo z projektu s řešením minulého cvičení (https://gitlab.vsb.cz/jez04-vyuka/java1/labs/lab03v1.git)
Vytvořte třídu Ufo, která bude implementovat metody draw a simulate podobně jako je implementuje BulletAnimated. Rozdíl bude ten, že se ufo bude pohybovat konstantní rychlostí. V okamžiku, kdy se ufo posune mimo plátno tak se objeví na druhé straně plátna (zkuste použijte funkci modulo, nebude fungovat pro pohyb doleva). Jako obrázek můžete použít například ufo-small.gif
Pole
Vytvořte pole objektů ufo ve třídě World. Toto pole inicializujte 5 objekty ufo na různých pozicích a s různými rychlostmi. Vytvořte si konstruktor pro objekt Ufo takový, že jako parametr bude mít objekt World. Tento konstruktor pak nastaví néhodnou pozici v horní části světa/plátna a nastaví nějakou rychlost, třeba náhodnou.
Modifikujte metody draw a simulate ve třídě World tak, že se bude volat draw a simulate na každé ufo.
Kolize
Vytvořte metody getBoundingBox ve třídách Ufo a BulletAnimated. Budou vracet objekt typu javafx.geometry.Rectangle2D, který ohraničuje daný objekt - tzv. "bounding box".
Modifikujte metodu simulate ve třídě World tak, že se bude pro každé ufo testovat, zda nebyl zasažen objektem BulletAnimated můžete použít například metodu intersects z třídy Rectangle2D.
Pokud bude nějaká ufo zasaženo, tak obraťte jeho směr.
Odevzdání
Řešení odevzdejte do systému Kelvin jako úlohu "Java 1 - 3. cvičení v1". Do systému nahrejde celý obsah složky src a soubor pom.xml. Postupujte dle videa na DU02 k odevzdání v době 3. cvičení.
Následně bude projekt zkompilován a provedou se Unit Testy. Vzhledem k povaze projektu a prozatímnímu testovacímu využití systému Kelvin v předmětu Java 1 v případě selhání nezoufejte.
Jedná se o pomocný test, vše bude ještě hodnoceno ručně. Důležité je nahrát soubory aby bylo možno vše vyhodnotit a provést analýzu na plagiáty. Věřím, že je to je formalita a všichni z Vás tvoří vlastní kód.
Řešení
Řešení zadání najdete v gitu ve větvi solution https://gitlab.vsb.cz/jez04-vyuka/java1/labs/lab03v1/-/tree/solution?ref_type=heads