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.