diff options
Diffstat (limited to 'src/main/java/net/sowgro/npehero')
-rwxr-xr-x | src/main/java/net/sowgro/npehero/Driver.java | 7 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java | 28 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/gui/LevelSurround.java | 10 |
3 files changed, 32 insertions, 13 deletions
diff --git a/src/main/java/net/sowgro/npehero/Driver.java b/src/main/java/net/sowgro/npehero/Driver.java index 15605cb..d63e447 100755 --- a/src/main/java/net/sowgro/npehero/Driver.java +++ b/src/main/java/net/sowgro/npehero/Driver.java @@ -35,7 +35,7 @@ import java.util.Stack; public class Driver extends Application { public static final Image MENU_BACKGROUND = new Image(Driver.class.getResource("mountains.png").toExternalForm()); - public static final File BASE_DIR = new File(getAppDataPath() + "/.npehero"); + public static File BASE_DIR; public static Stage primaryStage; public static ScrollPane primaryPane = new ScrollPane(); @@ -48,6 +48,11 @@ public class Driver extends Application * starts javafx */ public static void main(String[] args) { + if (args.length >= 1 && args[0].equals("-localBaseDir")) { + BASE_DIR = new File(".npehero"); + } else { + BASE_DIR = new File(getAppDataPath() + "/.npehero"); + } launch(args); } diff --git a/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java b/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java index 22dea09..fb95eb7 100755 --- a/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java +++ b/src/main/java/net/sowgro/npehero/gameplay/SongPlayer.java @@ -27,15 +27,29 @@ import javafx.util.*; public class SongPlayer extends HBox { + /** + * The delay in seconds before anything starts to happen after the user presses play. + * after this delay the notes will start to fall, then once one this delay + FALL_TIME has passed the song will start + */ + private final double START_DELAY = 1; + + /** + * The time in seconds it will take the notes to fall from 1 noteheight above the top of the screen the target + */ + private final double FALL_TIME = 1.105; + + /** + * An extra delay before the notes start to fall after START_DELAY. + * This does not affect when the song starts (allowing for syncing to be adjusted) + */ + private final double NOTE_DELAY = 0.2; + static class Lane { Target target; //Initializes the button, each parameter is a placeholder that is changed later ArrayList<Block> blocks = new ArrayList<>(); //Array list containing all the notes currently on the field for that lane Pane pane = new Pane(); } - private final int FALL_TIME = 1; // delay for notes falling down the screen (seconds) - private final double START_DELAY = 1; // seconds - private final Level level; private final Media song; private final ScoreController scoreCounter; @@ -69,17 +83,17 @@ public class SongPlayer extends HBox { timeline = new Timeline(); for (Note note : notes.list) { // schedule each note to send at its time - KeyFrame kf = new KeyFrame(Duration.seconds(note.getTime() + START_DELAY), _ -> sendNote(note)); + KeyFrame kf = new KeyFrame(Duration.seconds(START_DELAY + NOTE_DELAY + note.getTime()), _ -> sendNote(note)); timeline.getKeyFrames().add(kf); } // schedule the song to start after the delay - timeline.getKeyFrames().add(new KeyFrame(Duration.seconds(FALL_TIME + START_DELAY), _ -> { + timeline.getKeyFrames().add(new KeyFrame(Duration.seconds(START_DELAY + FALL_TIME), _ -> { if (!done) { Sound.playSong(song); } })); // schedule the game over screen to show at the end - timeline.getKeyFrames().add(new KeyFrame(Duration.seconds(songLength + FALL_TIME + START_DELAY), _ -> { + timeline.getKeyFrames().add(new KeyFrame(Duration.seconds(START_DELAY + FALL_TIME + NOTE_DELAY + songLength), _ -> { Driver.setMenu(new GameOver(level, diff, prev, scoreCounter)); cancel(); })); @@ -135,7 +149,7 @@ public class SongPlayer extends HBox { lane.blocks.add(block); - TranslateTransition anim = new TranslateTransition(Duration.seconds(FALL_TIME + 0.105)); + TranslateTransition anim = new TranslateTransition(Duration.seconds(FALL_TIME/* + 0.105*/)); anim.setInterpolator(Interpolator.LINEAR); anim.byYProperty().bind(lane.pane.heightProperty().add(block.getHeight()).add(75)); anim.setNode(block); diff --git a/src/main/java/net/sowgro/npehero/gui/LevelSurround.java b/src/main/java/net/sowgro/npehero/gui/LevelSurround.java index f4d46a3..e6cc2f4 100755 --- a/src/main/java/net/sowgro/npehero/gui/LevelSurround.java +++ b/src/main/java/net/sowgro/npehero/gui/LevelSurround.java @@ -105,11 +105,11 @@ public class LevelSurround extends Page AnchorPane.setBottomAnchor(comboTextBox, 0.0); comboBox.setPadding(new Insets(10)); - game.setMinHeight(1080); - game.setMinWidth(1080 * 0.55); - game.setMaxHeight(1080); - game.setMaxWidth(1080 * 0.55); - var scale = content.prefHeightProperty().divide(1080); + game.setMinHeight(720); + game.setMinWidth(720 * 0.55); + game.setMaxHeight(720); + game.setMaxWidth(720 * 0.55); + var scale = content.prefHeightProperty().divide(720); game.scaleXProperty().bind(scale); game.scaleYProperty().bind(scale); game.getStyleClass().add("box"); |