Vzhledem k aktuální situaci budeme cvičení řešit online formou pomocí Microsoft Teams, kde jste přidání do cvičení z předmětu Java I.
https://idoc.vsb.cz/xwiki/bin/view/fakulty/fbi/uzivatel/microsoft-teams/
V prvním cvičení jsme vykreslovali základní objekty do canvasu, v tomto cvičení se pokuste předělat vykreslování do tříd.
Vytvořte třídu World. V konstruktoru se budou vytvářet všechny objekty, minimálně objekty Bullet, BulletAnimated a Cannon.
Třída World bude obsahovat metody draw() a simulate(). Metoda draw bude vykreslovat všechny objekty.
public void draw(Canvas canvas) { GraphicsContext gc = canvas.getGraphicsContext2D(); gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight()); bullet.draw(gc); bulletAnimatted.draw(gc); cannon.draw(gc); }
Třída Bullet bude obsahovat přetížený konstruktor, který bude obsahovat jako parametr buď pouze instanci třídy s defaultním nastavením nebo bude obsahovat možnost nastavení všech základních vlastnosí (počáteční pozice, rychlost, velikost)
public Bullet() { ... } public Bullet(World world, Point2D start, Point2D speed, double size){ ... }
Třída BulletAnimated bude podobná jako třída Bullet, jen na místo metody fillOval bude vykreslovat animovaný GIF. Můžete použít tento nebo libovolný jiný.
Třída Cannon bude vykreslená minimáně jako obdélnik a bude sloužit v budoucnu k vystřelování objektů.
Objekty Cannon, Bullet, BulletAnimated budou mít metodu draw s parametrem GraphicsContext, která objekty pouze vykreslí.
Mimo to, budou obsahovat metodu simulate(), která bude umožňovat objektu, aby se spustila simulace, takže v našem příkladě dojde např. k přepočtu nové pozice.
Ukázka třídního diagramu, jak by šlo rozšířit základní projekt z minulého cvičení o použití tříd.