CV02 - Zadání - 1

Zadání úlohy na cvičení.

Zadání

V prvním cvičení jsme vykreslovali základní objekty do canvasu, v tomto cvičení předělejte vykreslování do tříd. Výchozí projekt naleznete na https://gitlab.vsb.cz/jez04-vyuka/java1/labs/lab02

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);
}

Bullet

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){
// ...
}

BulletAnimated

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

Cannon

Ukázka vykresleného kanónu
Zvětšit
Ukázka vykresleného kanónu

Třída Cannon bude vykreslená minimáně jako obdélnik a bude sloužit v budoucnu k vystřelování objektů.

Třídní diagram

Třídní diagram
Zvětšit
Třídní diagram

Ukázka třídního diagramu, jak rozšířit základní projekt z minulého cvičení. Plná verze obrázku zde

Řešení

Řešení zadání najdete v gitu ve větvi solution-v1 https://gitlab.vsb.cz/jez04-vyuka/java1/labs/lab02/-/tree/solution-v1?ref_type=heads