diff --git a/src/HighScore.txt b/src/HighScore.txt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/main/Main.java b/src/main/Main.java index 90ce02c58e4c619bf808a103febc7c530d83365a..64200c3306d2a24e9ee69bfeb53d67ad4731f0f4 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -1,6 +1,7 @@ package main; import states.GameModel; + import constants.Constants; import javafx.animation.AnimationTimer; diff --git a/src/states/HighScore.java b/src/states/HighScore.java new file mode 100644 index 0000000000000000000000000000000000000000..3e2aa56d922e0438b5e2d74f229b91b8c05dbca4 --- /dev/null +++ b/src/states/HighScore.java @@ -0,0 +1,47 @@ +package states; + +import java.io.File; + +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Scanner; + +public class HighScore { + + + public void saveScore(int score) { + if (score > getHighScore()) { + try { + FileWriter writer = new FileWriter("src/HighScore.txt"); + writer.write(""); + writer.write(Integer.toString(score)); + writer.close(); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + + } + + public int getHighScore() { + int highScore = 0; + + try { + File highScoreTxtFile = new File("src/HighScore.txt"); + Scanner myReader = new Scanner(highScoreTxtFile); + while (myReader.hasNextLine()) { + String data = myReader.nextLine(); + highScore = Integer.parseInt(data); + } + myReader.close(); + } catch (FileNotFoundException e) { + System.out.println("File not found."); + e.printStackTrace(); + } + + return highScore; + } + + } + diff --git a/src/states/PlayState.java b/src/states/PlayState.java index 31dcfe2d58df1ea36632e4b3ad201e1a5a2e20b3..d7acfedc194dbfeab04a57b0b8835313820037c6 100644 --- a/src/states/PlayState.java +++ b/src/states/PlayState.java @@ -37,13 +37,18 @@ public class PlayState extends GameState { */ private String informationText; private String livesleft; + private String gameOverText; private Color bgColor; private Color fontColor; - private boolean up = false; private Player player; private Enemy enemy; private boolean collided = false; + private boolean up = false; + private boolean gameOver = false; private MenuState menu; + private HighScore score = new HighScore(); +// private int clearedEnemies; + private String scoreText; /* Class only used for testing */ @@ -53,13 +58,16 @@ public class PlayState extends GameState { super(model); informationText = "Press Escape \nTo Return To The Menu"; livesleft = "Lives left: "; + gameOverText = "GAMEOVER\n" + informationText; bgColor = Color.BEIGE; fontColor = Color.BLUE; + scoreText = "Highscore: "; +// + Integer.toString(score.getHighScore()); player = new Player(Constants.playerImg); enemy = new Enemy(Constants.enemyImg); - -// menu = new MenuState(model); + + // menu = new MenuState(model); } @@ -72,8 +80,17 @@ public class PlayState extends GameState { g.setFill(fontColor); g.setFont(new Font(30)); // Big letters - g.fillText(livesleft+player.getLives(), 0, 30); - g.fillText(informationText, Constants.screenWidth - 300, 30); + + + if (!gameOver) { + g.fillText(livesleft+player.getLives(), 0, 30); + g.fillText(informationText, Constants.screenWidth - 300, 30); + g.fillText(scoreText, 0, 60); + } else { + g.fillText(gameOverText, Constants.screenWidth/2, 200); + } + + g.setStroke(Color.BLACK); g.setLineWidth(1); @@ -109,33 +126,37 @@ public class PlayState extends GameState { public void update() { //om enemy position är mindre än player och collide är true kollar den inte collision - if ((enemy.getEnemyX() <= (player.getPlayerX() + 80)) && (enemy.getEnemyX() > player.getPlayerX())) { - if (!collided && enemy.getEnemyX() > player.getPlayerX()) { - checkCollision(); - } - } + enemy.setEnemyX(enemy.getEnemyX()-10); - if (collided && enemy.getEnemyX() < player.getPlayerX()) { - collided = false; - } + if (!gameOver) { + if ((enemy.getEnemyX() <= (player.getPlayerX() + 80)) && (enemy.getEnemyX() > player.getPlayerX())) { + if (!collided && enemy.getEnemyX() > player.getPlayerX()) { + checkCollision(); + } +// clearedEnemies ++; + } - enemy.setEnemyX(enemy.getEnemyX()-10); + if (collided && enemy.getEnemyX() < player.getPlayerX()) { + collided = false; + } - if (up) { + if (up) { - player.jump(); - } + player.jump(); + } + + if (player.getPlayerY() == 265) { + up = false; + } - if (player.getPlayerY() == 265) { - up = false; } } public void checkCollision() { - + // if ((enemy.getEnemyX() <= (player.getPlayerX() + 80)) && (enemy.getEnemyX() > player.getPlayerX()) && ((player.getPlayerY() + 60) >= enemy.getEnemyY() )) { // @@ -152,13 +173,16 @@ public class PlayState extends GameState { // // System.out.println("helo"); if((player.getPlayerY() + 60) >= enemy.getEnemyY() ) { collided = true; -// System.out.println("fäk"); + // System.out.println("fäk"); if (Integer.valueOf(player.getLives()) == 0) { - menu = new MenuState(model); - model.switchState(menu); +// menu = new MenuState(model); + // model.switchState(menu); + gameOver = true; +// score.saveScore(clearedEnemies); + } player.decreaseLives(); -// System.out.println(player.getLives()); + // System.out.println(player.getLives()); } // System.out.println("slipped by enemy"); diff --git a/src/states/Player.java b/src/states/Player.java index 92648dc33c7b05da0c6d7c77db0fdc44d467f317..3eef35d9274a3b56dd169cb3faaca4741a949130 100644 --- a/src/states/Player.java +++ b/src/states/Player.java @@ -20,19 +20,18 @@ public class Player { private Image image; private boolean down = false; private boolean up = false; - private Rectangle rekt; - private ImageView playerView; +// private ImageView playerView; public Player(String playerImg) { try { image = new Image(new FileInputStream(playerImg)); - playerView = new ImageView(image); - playerView.setX(playerX); - playerView.setY(playerY); - playerView.setFitHeight(Constants.playerHeight); - playerView.setFitWidth(Constants.playerWidth); +// playerView = new ImageView(image); +// playerView.setX(playerX); +// playerView.setY(playerY); +// playerView.setFitHeight(Constants.playerHeight); +// playerView.setFitWidth(Constants.playerWidth); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -42,9 +41,9 @@ public class Player { } - public ImageView getPlayerView() { - return playerView; - } +// public ImageView getPlayerView() { +// return playerView; +// } public Image getImage() {