package nl.minkema.leendert; import javafx.event.EventHandler; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.layout.Background; import javafx.scene.layout.BackgroundFill; import javafx.scene.layout.Pane; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.paint.Color; import javafx.scene.text.Text; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; /** * @author J0QUE * @version 1.0 */ public class Game extends Pane { public static final HashMap specials = new HashMap<>(); public static int[][] locations; public static ArrayList players = new ArrayList<>(); /** * De constructor voor de game */ public Game() { //We willen dat de volgorde van de spelers willekeurig is. Collections.shuffle(players); //Dit is de achtergrond met het bord er op. Image bord = new Image("/images/bord.png"); ImageView view = new ImageView(bord); view.setPreserveRatio(true); view.setFitHeight(800); view.setX(0); view.setY(0); this.getChildren().add(view); //Dit zorgt voor de nummers in de vakjes for (int i = 0, locationsLength = locations.length; i < locationsLength; i++) { int[] k = locations[i]; //getChildren().add(new Circle(k[0], k[1], 5, Color.RED)); Text text = new Text(k[0] - 5, k[1] - 10, String.valueOf(i)); text.setFill(Color.GREENYELLOW); getChildren().add(text); } //Dit was om de locaties van de vakjes te bepalen. this.setOnMouseClicked(new EventHandler() { int i = 0; @Override public void handle(MouseEvent event) { //System.out.printf("%d: %d,%d%n", i++, (int) event.getSceneX(), (int) event.getSceneY()); } }); //Dit is de afbeelding van de speler die mag gooien ImageView playerTurn = new ImageView(); playerTurn.setX(1000); playerTurn.setY(50); playerTurn.setPreserveRatio(true); playerTurn.setFitHeight(400); //Hier staat de naam van het karaker in. Label l = new Label(); l.setTranslateX(965); l.setTranslateY(370); this.getChildren().add(playerTurn); this.getChildren().addAll(l); //Dit is onze dobbelsteen Dice dice = new Dice(1100, 700); this.getChildren().add(dice); //Dit is de knop van de dobbelsteen. this.getChildren().add(Menu.createButton("Gooi", 1100, 650, e -> { //We kijken wie de volgende speler is Player p = players.get(Player.getNextActive()); //En rollen een dobbelsteen int roll = dice.roll(); //Dan verplaatsen we de speler p.move(roll); //Als de speler 4 gooit mag hij/zij nog een keer if (roll == 4) Player.four(); //We zoeken uit wie er hier na mag int next = players.get(Player.getNextActive()).getCh(); //Zetten die afbeelding als de speler die mag gooien playerTurn.setImage(Menu.images[next]); //En doen hetzelfde met de naam van de speler l.setText(Menu.names[next] + " is aan de beurt!"); //En zetten het weer terug naar de vorige speler Player.four(); })); //Dit is de achtergrond this.setBackground(new Background(new BackgroundFill(Color.GREENYELLOW, null, null))); //Dit zijn alle spelers for (Player p : players) { this.getChildren().add(p.getImageView()); } playerTurn.setImage(Menu.images[players.get(1).getCh()]); l.setText(Menu.names[players.get(1).getCh()] + " is aan de beurt!"); //En hier is de achtergrondmuziek, die het soms wel en soms niet doet... String loc = this.getClass().getResource("/music/game.mp3").toString(); Media music = new Media(loc); MediaPlayer menuplayer = new MediaPlayer(music); menuplayer.setCycleCount(Integer.MAX_VALUE); menuplayer.setVolume(0.6f); menuplayer.setAutoPlay(true); menuplayer.play(); menuplayer.play(); } }