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.
