package de.sanguinik.view;
import java.net.URL;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;
/**
*
* @author marlene
*
*/
public class TitleScreen extends Application {
private static final double BUTTON_SIZE = 120.0;
private MediaPlayer player;
public static void main(final String[] args) {
launch(args);
}
@Override
public void start(final Stage primaryStage) {
primaryStage.setTitle("Knight of Wor");
primaryStage.setResizable(false);
URL pathToTitleMusic = getClass().getResource("KoW.mp3");
if (pathToTitleMusic != null) {
Media sound = new Media(pathToTitleMusic.toString());
player = new MediaPlayer(sound);
player.play();
} else {
System.err.println("Musikdatei 'KoW.mp3' wurde nicht gefunden!");
}
GridPane grid = new GridPane();
grid.setId("titleGrid");
grid.setAlignment(Pos.CENTER);
grid.setHgap(30);
grid.setVgap(30);
Button newGame = new Button();
newGame.setText("Neues Spiel");
newGame.setPrefWidth(BUTTON_SIZE);
grid.add(newGame, 0, 0);
newGame.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(final ActionEvent arg0) {
if (player != null) {
player.stop();
}
PlayFieldScreen psc = new PlayFieldScreen();
psc.start(primaryStage);
}
});
Button options = new Button();
options.setText("Optionen");
options.setPrefWidth(BUTTON_SIZE);
grid.add(options, 0, 1);
options.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(final ActionEvent arg0) {
if (player != null) {
player.stop();
}
Options optionsGUI = new Options();
optionsGUI.start(primaryStage);
}
});
Button highscore = new Button();
highscore.setText("Highscore");
highscore.setPrefWidth(BUTTON_SIZE);
grid.add(highscore, 0, 2);
highscore.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(final ActionEvent arg0) {
if (player != null) {
player.stop();
}
HighscoreScreen highscoreScreen = new HighscoreScreen();
highscoreScreen.start(primaryStage);
}
});
Button about = new Button();
about.setText("Credits");
about.setPrefWidth(BUTTON_SIZE);
grid.add(about, 0, 3);
about.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(final ActionEvent event) {
if (player != null) {
player.stop();
}
Credits credits = new Credits();
credits.start(primaryStage);
}
});
Button close = new Button();
close.setText("Beenden");
close.setPrefWidth(BUTTON_SIZE);
grid.add(close, 0, 4);
close.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(final ActionEvent event) {
if (player != null) {
player.stop();
}
System.exit(0);
}
});
Scene scene = new Scene(grid, 1024, 740);
scene.getStylesheets().add(TitleScreen.class.getResource("controls.css").toExternalForm());
scene.getStylesheets().add(
TitleScreen.class.getResource("TitleScreen.css")
.toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
}
}