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
Třída Cannon bude vykreslená minimáně jako obdélnik a bude sloužit v budoucnu k vystřelování objektů.
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