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 UfoBulletAnimated. 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