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