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