CV02 - Zadání - 2

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 Level. V konstruktoru se budou vytvářet všechny objekty, minimálně objekty Player, Obstacle a NicerObstacle.

Level

Třída Level bude obsahovat metody draw() a simulate(). Metoda draw bude vykreslovat všechny objekty.

public void draw(GraphicsContext gc) {
gc.setFill(Color.WHITE);
gc.clearRect(0, 0, width, height);
nicerObstacle.draw(gc);
obstacle.draw(gc);
player.draw(gc);
}

Obstacle

Třída Obstacle bude obsahovat přetížený konstruktor, který bude obsahovat jako parametr buď pouze instanci třídy Level a použije se defaultní nastavení ostatních atributů nebo bude obsahovat možnost nastavení všech základních vlastnosí (počáteční pozice, velikost)

public Obstacle(Level level) {
// ...
}

public Obstacle(Level level, Point2D position, Point2D size) {
// ...
}

Player

Třída Player bude vykreslená minimáně jako obdélnik a bude sloužit v budoucnu jak postavička ovládaná hráčem.

Postavička se bude pohybovat daným směrem (udáno v konstruktoru), jako ponus se pohyb hráče může zpomalovat.

Navíc se může postavička hráče natáčet ve směru pohybu.

NicerObstacle

Třída NicerObstacle bude podobná jako třída Obstacle, jen na místo jednoduchého tvaru bude vykreslovat animovaný GIF. Můžete použít tento nebo libovolný jiný.

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-v2 https://gitlab.vsb.cz/jez04-vyuka/java1/labs/lab02/-/tree/solution-v2?ref_type=heads