Java – Lesson 2

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.