diff options
Diffstat (limited to '')
| -rw-r--r-- | src/assets/pico.png | bin | 0 -> 9072089 bytes | |||
| -rw-r--r-- | src/gui/Driver.java | 18 | ||||
| -rw-r--r-- | src/gui/Leaderboard.java | 26 | ||||
| -rw-r--r-- | src/gui/Level.java | 6 | ||||
| -rw-r--r-- | src/gui/LevelSelector.java | 62 | ||||
| -rw-r--r-- | src/gui/MainMenu.java | 20 | ||||
| -rw-r--r-- | src/gui/Settings.java | 29 | ||||
| -rw-r--r-- | src/gui/style.css | 78 | ||||
| -rw-r--r-- | src/main/JFXaudioPlayer.java | 17 | ||||
| -rw-r--r-- | src/main/focusTest.java | 46 | 
10 files changed, 238 insertions, 64 deletions
diff --git a/src/assets/pico.png b/src/assets/pico.png Binary files differnew file mode 100644 index 0000000..002ad9e --- /dev/null +++ b/src/assets/pico.png diff --git a/src/gui/Driver.java b/src/gui/Driver.java index f9449cd..77fe0b0 100644 --- a/src/gui/Driver.java +++ b/src/gui/Driver.java @@ -38,25 +38,27 @@ public class Driver extends Application              value.minHeightProperty().bind(primaryStage.heightProperty());          } -        primaryPane.getChildren().add(menus.get("MainMenu")); -        primaryPane.minWidthProperty().bind(primaryStage.widthProperty());  -        primaryPane.minHeightProperty().bind(primaryStage.heightProperty()); -        setBackground("assets/water.png"); -          Scene primaryScene = new Scene(primaryPane, 800, 600);          primaryScene.getStylesheets().add("gui/style.css");          primaryStage.setScene(primaryScene);          primaryStage.setTitle("NPE Hero"); + +        setMenu("MainMenu"); +        setBackground("assets/water.png"); +          primaryStage.show(); -        primaryStage.setFullScreen(true);      } -    public static void switchMenu(String name) +    public static void setMenu(String name)      { -        primaryPane.getChildren().remove(0); +        if (! primaryPane.getChildren().isEmpty()) +        { +            primaryPane.getChildren().remove(0); +        }          primaryPane.getChildren().add(menus.get(name)); +        primaryPane.requestFocus();      }      public static void setBackground(String url) diff --git a/src/gui/Leaderboard.java b/src/gui/Leaderboard.java index 598b6aa..9580a5f 100644 --- a/src/gui/Leaderboard.java +++ b/src/gui/Leaderboard.java @@ -1,12 +1,12 @@  package gui; +  import javafx.collections.FXCollections;  import javafx.collections.ObservableList; -import javafx.event.ActionEvent; -import javafx.event.EventHandler;  import javafx.geometry.Pos;  import javafx.scene.control.Button;  import javafx.scene.control.ListView; +import javafx.scene.layout.HBox;  import javafx.scene.layout.Pane;  import javafx.scene.layout.VBox; @@ -17,16 +17,24 @@ public class Leaderboard extends Pane          ListView<String> scores = new ListView<String>();          ObservableList<String> scoreList= FXCollections.observableArrayList ("Test Score 1", "Test Score 2", "Test Score 3", "Test Score 4");          scores.setItems(scoreList); +        scores.minWidthProperty().bind(super.widthProperty().multiply(0.25));  +        scores.minHeightProperty().bind(super.heightProperty().multiply(0.75));          Button exit = new Button();          exit.setText("Exit"); -        exit.setOnAction(e -> Driver.switchMenu("MainMenu")); +        exit.setOnAction(e -> Driver.setMenu("MainMenu")); + +        VBox centerBox = new VBox(); +        centerBox.setAlignment(Pos.CENTER); +        centerBox.setSpacing(10); +        centerBox.getChildren().addAll(scores,exit); + +        HBox rootBox = new HBox(); +        rootBox.minWidthProperty().bind(super.widthProperty());  +        rootBox.minHeightProperty().bind(super.heightProperty()); +        rootBox.getChildren().add(centerBox); +        rootBox.setAlignment(Pos.CENTER); -        VBox centerMenu3 = new VBox(); -        centerMenu3.minWidthProperty().bind(super.widthProperty());  -        centerMenu3.minHeightProperty().bind(super.heightProperty()); -        centerMenu3.setAlignment(Pos.CENTER); -        centerMenu3.getChildren().addAll(scores,exit); -        super.getChildren().add(centerMenu3); +        super.getChildren().add(rootBox);      }  } diff --git a/src/gui/Level.java b/src/gui/Level.java index 8f98903..ecb741d 100644 --- a/src/gui/Level.java +++ b/src/gui/Level.java @@ -8,19 +8,13 @@ import javafx.scene.Scene;  import javafx.scene.control.Button;  import javafx.scene.effect.BlurType;  import javafx.scene.effect.DropShadow; -import javafx.scene.layout.AnchorPane;  import javafx.scene.layout.Background;  import javafx.scene.layout.BackgroundFill;  import javafx.scene.layout.BorderPane;  import javafx.scene.layout.CornerRadii;  import javafx.scene.layout.GridPane;  import javafx.scene.layout.Pane; -import javafx.scene.layout.StackPane;  import javafx.scene.paint.Color; -import javafx.scene.shape.Rectangle; -import javafx.scene.text.Font; -import javafx.scene.text.FontWeight; -import javafx.scene.text.Text;  import javafx.stage.Stage;  // will eventually extend pane diff --git a/src/gui/LevelSelector.java b/src/gui/LevelSelector.java index a84444b..e0ad663 100644 --- a/src/gui/LevelSelector.java +++ b/src/gui/LevelSelector.java @@ -3,12 +3,16 @@ package gui;  import javafx.collections.FXCollections;  import javafx.collections.ObservableList;  import javafx.geometry.Pos; -import javafx.scene.Scene;  import javafx.scene.control.Button;  import javafx.scene.control.ListView; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.HBox;  import javafx.scene.layout.Pane;  import javafx.scene.layout.VBox; -import javafx.stage.Stage; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import javafx.scene.text.Text;  public class LevelSelector extends Pane  {    @@ -17,12 +21,60 @@ public class LevelSelector extends Pane          ListView<String> levels = new ListView<String>();          ObservableList<String> levelList= FXCollections.observableArrayList ("Test Level 1", "Test Level 2", "Test Level 3", "Test Level 4");          levels.setItems(levelList); -        //super.setAlignment(Pos.CENTER); +        levels.minWidthProperty().bind(super.widthProperty().multiply(0.25));  +        levels.minHeightProperty().bind(super.heightProperty().multiply(0.75)); +          Button exit = new Button();          exit.setText("Exit"); -        exit.setOnAction(e -> Driver.switchMenu("MainMenu")); +        exit.setOnAction(e -> Driver.setMenu("MainMenu")); + +        VBox leftBox = new VBox(); +        leftBox.setAlignment(Pos.CENTER_LEFT); +        leftBox.setSpacing(10); +        leftBox.getChildren().addAll(levels,exit); + +        Text title = new Text(); +        title.setText("Test level 1"); +        title.setFill(Color.WHITE); +        title.setFont(new Font(50)); +        title.wrappingWidthProperty().bind(super.widthProperty().multiply(0.37)); + +        Text desc = new Text(); +        desc.setText("long description with lots of words. what we write does not actually need to be long i just wan t make sure it can word wrap"); +        desc.setFill(Color.WHITE); +        desc.wrappingWidthProperty().bind(super.widthProperty().multiply(0.37)); + +        ImageView previewView = new ImageView(); +        Image preview = new Image("assets/pico.png"); +        previewView.setImage(preview); +        //previewView.setFitHeight(100); +        previewView.fitWidthProperty().bind(super.widthProperty().multiply(0.25)); +        previewView.setPreserveRatio(true); + +        VBox details = new VBox(); +        details.minWidthProperty().bind(super.widthProperty().multiply(0.37));  +        details.minHeightProperty().bind(super.heightProperty().multiply(0.75)); +        details.maxWidthProperty().bind(super.widthProperty().multiply(0.37));  +        details.maxHeightProperty().bind(super.heightProperty().multiply(0.75)); +        details.getStyleClass().add("textBox"); +        details.getChildren().addAll(title,desc,previewView); + +        Button play = new Button(); +        play.setText("Play"); + +        VBox rightBox = new VBox(); +        rightBox.setAlignment(Pos.CENTER_RIGHT); +        rightBox.setSpacing(10); +        rightBox.getChildren().addAll(details,play); + +        HBox rootBox = new HBox(); +        rootBox.minWidthProperty().bind(super.widthProperty());  +        rootBox.minHeightProperty().bind(super.heightProperty()); +        rootBox.getChildren().addAll(leftBox, rightBox); +        rootBox.setAlignment(Pos.CENTER); +        rootBox.setSpacing(10); -        super.getChildren().addAll(levels,exit); +        super.getChildren().add(rootBox);      }  } diff --git a/src/gui/MainMenu.java b/src/gui/MainMenu.java index 3ad91ad..d04408d 100644 --- a/src/gui/MainMenu.java +++ b/src/gui/MainMenu.java @@ -1,16 +1,9 @@  package gui; -import javafx.event.EventHandler; -import javafx.event.ActionEvent;  import javafx.geometry.Pos;  import javafx.scene.control.Button;  import javafx.scene.effect.BlurType;  import javafx.scene.effect.DropShadow; -import javafx.scene.layout.Border; -import javafx.scene.layout.BorderStroke; -import javafx.scene.layout.BorderStrokeStyle; -import javafx.scene.layout.BorderWidths; -import javafx.scene.layout.CornerRadii;  import javafx.scene.layout.Pane;  import javafx.scene.layout.VBox;  import javafx.scene.paint.Color; @@ -21,7 +14,6 @@ public class MainMenu extends Pane  {      public MainMenu()      { -          DropShadow dropShadow = new DropShadow();          dropShadow.setRadius(50.0);          dropShadow.setColor(Color.WHITE); @@ -35,36 +27,32 @@ public class MainMenu extends Pane          Button play = new Button();          play.setText("Play"); -        play.setOnAction(e -> Driver.switchMenu("LevelSelector")); +        play.setOnAction(e -> Driver.setMenu("LevelSelector"));          Button settings = new Button();          settings.setText("Settings"); -        settings.setOnAction(e -> Driver.switchMenu("Settings")); +        settings.setOnAction(e -> Driver.setMenu("Settings"));          Button leaderboard = new Button();          leaderboard.setText("Leaderboard"); -        leaderboard.setOnAction(e -> Driver.switchMenu("Leaderboard")); - -        //Border border = new Border(new BorderStroke(Color.WHITE, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, BorderWidths.DEFAULT)); +        leaderboard.setOnAction(e -> Driver.setMenu("Leaderboard"));          VBox buttonBox = new VBox();          buttonBox.getChildren().addAll(play, settings, leaderboard);          buttonBox.setAlignment(Pos.CENTER);          buttonBox.setSpacing(10); -        //buttonBox.setBorder(border);          VBox centerBox = new VBox();          centerBox.setAlignment(Pos.CENTER);          centerBox.getChildren().addAll(title, buttonBox);          centerBox.setSpacing(10); -        //centerBox.setBorder(border);          VBox rootBox = new VBox();          rootBox.minWidthProperty().bind(super.widthProperty());           rootBox.minHeightProperty().bind(super.heightProperty());          rootBox.setAlignment(Pos.CENTER);          rootBox.getChildren().add(centerBox); -        //rootBox.setBorder(border); +          super.getChildren().add(rootBox);      } diff --git a/src/gui/Settings.java b/src/gui/Settings.java index 94c2a89..946be85 100644 --- a/src/gui/Settings.java +++ b/src/gui/Settings.java @@ -1,12 +1,12 @@  package gui; -import javafx.event.ActionEvent; -import javafx.event.EventHandler;  import javafx.geometry.Pos;  import javafx.scene.control.Button;  import javafx.scene.control.Slider; +import javafx.scene.layout.HBox;  import javafx.scene.layout.Pane;  import javafx.scene.layout.VBox; +import javafx.scene.paint.Color;  import javafx.scene.text.Text;  public class Settings extends Pane @@ -15,6 +15,7 @@ public class Settings extends Pane      {          Text t1 = new Text();          t1.setText("Music Volume"); +        t1.setFill(Color.WHITE);          Slider musicVol = new Slider();          musicVol.setMax(100); @@ -22,6 +23,7 @@ public class Settings extends Pane          Text t2 = new Text();          t2.setText("Sound Effects Volume"); +        t2.setFill(Color.WHITE);          Slider sfxVol = new Slider();          sfxVol.setMax(100); @@ -29,25 +31,26 @@ public class Settings extends Pane          Button devMenu = new Button();          devMenu.setText("Debug Menu"); -        devMenu.setOnAction(new EventHandler<ActionEvent>()  -        { -            @Override -            public void handle(ActionEvent event)  -            { -                Driver.setBackground("assets/trees.png"); -            } -        }); +        devMenu.setOnAction(e -> Driver.setBackground("assets/trees.png"));          Button exit = new Button();          exit.setText("Exit"); -        exit.setOnAction(e -> Driver.switchMenu("MainMenu")); +        exit.setOnAction(e -> Driver.setMenu("MainMenu"));          VBox options = new VBox(); +        options.setSpacing(10);          options.setAlignment(Pos.CENTER);          options.getChildren().addAll(t1,musicVol,t2,sfxVol,devMenu,exit); -        options.minWidthProperty().bind(super.widthProperty());  +        options.minWidthProperty().bind(super.widthProperty().multiply(0.25));           options.minHeightProperty().bind(super.heightProperty()); -        super.getChildren().add(options); +        //options.getStyleClass().add("textBox"); + +        HBox rootBox = new HBox(); +        rootBox.minWidthProperty().bind(super.widthProperty());  +        rootBox.minHeightProperty().bind(super.heightProperty()); +        rootBox.getChildren().add(options); +        rootBox.setAlignment(Pos.CENTER); +        super.getChildren().add(rootBox);      }  } diff --git a/src/gui/style.css b/src/gui/style.css index 3e18f9d..7ca76be 100644 --- a/src/gui/style.css +++ b/src/gui/style.css @@ -1,14 +1,20 @@ +/* button */ +  Button {       -fx-background-color: rgba(0, 0, 0, 0.5);       -fx-text-fill: white;      -fx-padding: .5em;      -fx-font-size: 25; -    -fx-background-radius: 10; +    -fx-background-radius: 5;  }  Button:hover { -    -fx-background-color: rgb(255, 255, 255); -    -fx-text-fill: rgb(0, 0, 0); +    -fx-background-color: rgb(50, 50, 50, 0.5); +} + +Button:focused { +    -fx-background-color: rgb(255, 255, 255);   +    -fx-text-fill: rgb(0, 0, 0);   }  Button:pressed { @@ -16,6 +22,68 @@ Button:pressed {      -fx-text-fill: rgb(0, 0, 0);  } -.pad { +/* list */ + +ListView { +    -fx-background-color: rgba(0, 0, 0, 0.5); +    -fx-background-radius: 5; +} + +.list-cell { +    -fx-padding: .5em; +    -fx-background-color: transparent; +    -fx-text-fill: rgb(255, 255, 255); +} + +.list-cell:hover { +    -fx-background-color: rgba(100, 100, 100, 0.5); +     +} + +.list-cell:selected { +    -fx-background-color: rgb(255, 255, 255); +    -fx-text-fill: rgb(0, 0, 0); +} + +/* slider */ + +Slider {      -fx-padding: 1em; -}
\ No newline at end of file +} + +.track { +     +    -fx-padding: 3; +    -fx-background-color: rgba(0, 0, 0, 0.5); +    -fx-background-radius: 5; +} + +.thumb { +    -fx-pref-height: 30; +    -fx-prefer-width: 30; +    -fx-background-color: rgba(0, 0, 0, 0.5); +    -fx-size: 25; +    -fx-border-radius: 5; +    -fx-border-color: rgb(231, 231, 231); +    -fx-border-width: 3; +} + +.thumb:hover { +    -fx-background-color: rgb(50, 50, 50, 0.5); +} + +Slider:focused .thumb{ +    -fx-background-color: rgb(255,255,255); +    -fx-border-color: white; +} + +.thumb:pressed { +    -fx-background-color: rgb(231, 231, 231); +    -fx-border-color: rgb(231, 231, 231); +} + +.textBox { +    -fx-background-radius: 5;     +    -fx-background-color: rgba(0, 0, 0, 0.5);  +    -fx-text-fill: white; +} diff --git a/src/main/JFXaudioPlayer.java b/src/main/JFXaudioPlayer.java index 0a2162d..9207c59 100644 --- a/src/main/JFXaudioPlayer.java +++ b/src/main/JFXaudioPlayer.java @@ -1,16 +1,29 @@  package main;  import java.io.File; +import java.io.IOException; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent;  import javafx.scene.media.Media;  import javafx.scene.media.MediaPlayer; +import javafx.stage.Stage; -public class JFXaudioPlayer { +public class JFXaudioPlayer extends Application{ +          public static void main(String[] args)       { +        launch(args); +    } +         +    @Override +    public void start(Stage primaryStage)  +    { +        // primaryStage.show();          String musicFile = "EXAMPLE.mp3";     // For example          Media sound = new Media(new File(musicFile).toURI().toString());          MediaPlayer mediaPlayer = new MediaPlayer(sound);          mediaPlayer.play(); -        mediaPlayer.stop();      }  }
\ No newline at end of file diff --git a/src/main/focusTest.java b/src/main/focusTest.java new file mode 100644 index 0000000..28e61a3 --- /dev/null +++ b/src/main/focusTest.java @@ -0,0 +1,46 @@ +package main; + +import javafx.application.Application; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.ToggleButton; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; + +public class focusTest extends Application { +     +    public static void main(String[] args)  +    { +        launch(args); +    } + +    @Override +    public void start(Stage primaryStage) throws Exception  +    { +        VBox root = new VBox(); +        root.setAlignment(Pos.CENTER); +        root.setSpacing(20); +        Scene sc = new Scene(root, 500, 500); +        primaryStage.setScene(sc); +        primaryStage.show(); + + +        ToggleButton btn1 = new ToggleButton("Button 1"); +        ToggleButton btn2 = new ToggleButton("Button 2"); +        ToggleButton btn3 = new ToggleButton("Button 3"); +        ToggleButton btn4 = new ToggleButton("Button 4"); + +        HBox hb1 = new HBox(); +        hb1.setAlignment(Pos.CENTER); +        hb1.getChildren().addAll(btn1, btn2); + +        HBox hb2 = new HBox(); +        hb2.setAlignment(Pos.CENTER); +        hb2.getChildren().addAll(btn3, btn4); + +        root.getChildren().addAll(hb1, hb2); + +        hb1.requestFocus(); +    } +}  | 
