V prvním cvičení jsme vykreslovali základní objekty do canvasu, v tomto cvičení se pokuste předělat vykreslování do tříd.
Vytvořte třídu World. V konstruktoru se budou vytvářet všechny objekty, minimálně objekty Ball, BulletBall 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);
}
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) {
…
}
Dopracujte věci z minulého cvičení.
Vytvořte třídu Ufo která bude kreslit obrázek vesmírné lodi mimozemštanů a bude se pohybovat po omezené ploše. Třída bude podobně jako cihla vhodné rozhraní ( Paintable , Shootable, Movable, popřípadě jejich kombinace) .
Introduction
lab03.zip contains a skeleton of a simple simulation of something like a catapult: a ball is accelerated by a constant force and then it is running on ballistic trajectory as it is influenced by gravity force.
Packages
Separate project into packages:
- pl1.common – classes that contains common used routines;
- pl1.lab03 – classes that start application;
- pl1.lab03.core – classes implementing simulation.
Using libraries
Implement methods in the class Ball: move, accelerate.
Implement method in the class Catapult shootBall and in the class Physics manageBallMovement.