CV03 - Zadání - 2

Zadání úlohy na cvičení. pole, metody s proměnným počtem parametrů, foreach

Monster

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/lab03v2.git)

Vytvořte třídu Monster, která bude implementovat metody draw a simulate podobně jako je implementuje Player. Rozdíl bude ten, že se příšera bude pohybovat konstantní rychlostí shora dolů. V okamžiku, kdy se příšera posune mimo plátno tak se objeví na horní straně plátna (zkuste použijte funkci modulo, nebude fungovat pro pohyb nahoru). Jako obrázek můžete použít například red-monster.gif

Pole

Vytvořte pole objektů Monster ve třídě Level. Toto pole inicializujte 5 příšerami na různých pozicích a s různými rychlostmi. Vytvořte si konstruktor pro třídu Monster takový, že jako parametr bude mít objekt Level. Tento konstruktor pak nastaví néhodnou pozici v pravé části světa/plátna a nastaví nějakou rychlost, třeba náhodnou.

Modifikujte metody draw a simulate  ve třídě Level tak, že se bude volat draw a simulate na každou příšeru.

Kolize

Vytvořte metody getBoundingBox ve třídách Monster a Player. Budou vracet objekt typu javafx.geometry.Rectangle2D, který ohraničuje daný objekt - tzv. "bounding box". Prozatím zanedbejte případnou rotaci hráče.

Modifikujte metodu simulate ve třídě Level tak, že se bude pro každou příšeru testovat, zda se nestřetla s objektem Player můžete použít například metodu intersects ze třídy Rectangle2D.

Pokud bude nějaká příšar v kontaktu s hráčem, tak obraťte směr pohybu příšery.

Odevzdání

Řešení odevzdejte do systému Kelvin jako úlohu "Java 1 - 3. cvičení v2". 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/lab03v2/-/tree/solution?ref_type=heads