PJ1 Lesson 4

 

Přidejte do projektu s katapultem cihličku, kterou budete moci sestřelit.

https://openjfx.io/javadoc/11/javafx.graphics/javafx/application/Application.html

Místo cihličky vykreslete obrázek 70x30px (můžete si pak zvolit svůj).

public void paint(GraphicsContext gc) {
   Image brickImage = new Image(getClass().getResourceAsStream("image.png"));
   gc.drawImage(brickImage, x-35, y-15);
}

Při výstřelu testujte vzdálenost objektu Ball od cihličky

public boolean isHit(double a, double b){
        return (Math.abs(a-x) menší 35 AND Math.abs(b-y) menší 15);
    }

V projektu použijte ObjectManager, který bude ukládat a vykreslovat všechny vykreslované objekty (např. cihličky), které implementují rozhraní Paintable (popřípadě další např. Shootable) a vhodně je zkombinujte. Objekty se začnou vykreslovat po zaregistrování pomocí metody add(Paintable).

public void add(Paintable p){
       objects.add(p);
}

Pro ukládání objektů použijte ArrayList

private final ArrayList[Paintable] objects;

A pro vykreslení použijte procházení

 Iterator [Paintable] itr = objects.iterator();

        while (itr.hasNext()) {
            Paintable i = itr.next();
            if (i.isHit(x, y)) itr.remove();
            else i.paint(gc);
        }

Propojení FXML a Java kódu

<br>
//FXML    Button fx:id="fire" mnemonicParsing="false" onAction="#firePressed" text="Fire"

@FXML</p>
<p>private void firePressed(ActionEvent e) {<br>
...<br>
}<br>

 

 

Domácí úloha

Rozšiřte hru o další prvky a možnosti.