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.

1.Qt

2. Příklad (Clock) [ sablona]

3. prezentace [prezentace]