Skip to content
Snippets Groups Projects
Commit ba7d9e30 authored by Oscar Wiberg's avatar Oscar Wiberg
Browse files

game over screen

parent c1f94e23
No related branches found
No related tags found
1 merge request!1Testb
package main; package main;
import states.GameModel; import states.GameModel;
import constants.Constants; import constants.Constants;
import javafx.animation.AnimationTimer; import javafx.animation.AnimationTimer;
......
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;
}
}
...@@ -37,13 +37,18 @@ public class PlayState extends GameState { ...@@ -37,13 +37,18 @@ public class PlayState extends GameState {
*/ */
private String informationText; private String informationText;
private String livesleft; private String livesleft;
private String gameOverText;
private Color bgColor; private Color bgColor;
private Color fontColor; private Color fontColor;
private boolean up = false;
private Player player; private Player player;
private Enemy enemy; private Enemy enemy;
private boolean collided = false; private boolean collided = false;
private boolean up = false;
private boolean gameOver = false;
private MenuState menu; private MenuState menu;
private HighScore score = new HighScore();
// private int clearedEnemies;
private String scoreText;
/* Class only used for testing */ /* Class only used for testing */
...@@ -53,13 +58,16 @@ public class PlayState extends GameState { ...@@ -53,13 +58,16 @@ public class PlayState extends GameState {
super(model); super(model);
informationText = "Press Escape \nTo Return To The Menu"; informationText = "Press Escape \nTo Return To The Menu";
livesleft = "Lives left: "; livesleft = "Lives left: ";
gameOverText = "GAMEOVER\n" + informationText;
bgColor = Color.BEIGE; bgColor = Color.BEIGE;
fontColor = Color.BLUE; fontColor = Color.BLUE;
scoreText = "Highscore: ";
// + Integer.toString(score.getHighScore());
player = new Player(Constants.playerImg); player = new Player(Constants.playerImg);
enemy = new Enemy(Constants.enemyImg); enemy = new Enemy(Constants.enemyImg);
// menu = new MenuState(model); // menu = new MenuState(model);
} }
...@@ -72,8 +80,17 @@ public class PlayState extends GameState { ...@@ -72,8 +80,17 @@ public class PlayState extends GameState {
g.setFill(fontColor); g.setFill(fontColor);
g.setFont(new Font(30)); // Big letters 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.setStroke(Color.BLACK);
g.setLineWidth(1); g.setLineWidth(1);
...@@ -109,33 +126,37 @@ public class PlayState extends GameState { ...@@ -109,33 +126,37 @@ public class PlayState extends GameState {
public void update() { public void update() {
//om enemy position är mindre än player och collide är true kollar den inte collision //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())) { enemy.setEnemyX(enemy.getEnemyX()-10);
if (!collided && enemy.getEnemyX() > player.getPlayerX()) {
checkCollision();
}
}
if (collided && enemy.getEnemyX() < player.getPlayerX()) { if (!gameOver) {
collided = false;
}
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() { public void checkCollision() {
// if ((enemy.getEnemyX() <= (player.getPlayerX() + 80)) && (enemy.getEnemyX() > player.getPlayerX()) && ((player.getPlayerY() + 60) >= enemy.getEnemyY() )) { // if ((enemy.getEnemyX() <= (player.getPlayerX() + 80)) && (enemy.getEnemyX() > player.getPlayerX()) && ((player.getPlayerY() + 60) >= enemy.getEnemyY() )) {
// //
...@@ -152,13 +173,16 @@ public class PlayState extends GameState { ...@@ -152,13 +173,16 @@ public class PlayState extends GameState {
// // System.out.println("helo"); // // System.out.println("helo");
if((player.getPlayerY() + 60) >= enemy.getEnemyY() ) { if((player.getPlayerY() + 60) >= enemy.getEnemyY() ) {
collided = true; collided = true;
// System.out.println("fäk"); // System.out.println("fäk");
if (Integer.valueOf(player.getLives()) == 0) { if (Integer.valueOf(player.getLives()) == 0) {
menu = new MenuState(model); // menu = new MenuState(model);
model.switchState(menu); // model.switchState(menu);
gameOver = true;
// score.saveScore(clearedEnemies);
} }
player.decreaseLives(); player.decreaseLives();
// System.out.println(player.getLives()); // System.out.println(player.getLives());
} }
// System.out.println("slipped by enemy"); // System.out.println("slipped by enemy");
......
...@@ -20,19 +20,18 @@ public class Player { ...@@ -20,19 +20,18 @@ public class Player {
private Image image; private Image image;
private boolean down = false; private boolean down = false;
private boolean up = false; private boolean up = false;
private Rectangle rekt; // private ImageView playerView;
private ImageView playerView;
public Player(String playerImg) { public Player(String playerImg) {
try { try {
image = new Image(new FileInputStream(playerImg)); image = new Image(new FileInputStream(playerImg));
playerView = new ImageView(image); // playerView = new ImageView(image);
playerView.setX(playerX); // playerView.setX(playerX);
playerView.setY(playerY); // playerView.setY(playerY);
playerView.setFitHeight(Constants.playerHeight); // playerView.setFitHeight(Constants.playerHeight);
playerView.setFitWidth(Constants.playerWidth); // playerView.setFitWidth(Constants.playerWidth);
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
...@@ -42,9 +41,9 @@ public class Player { ...@@ -42,9 +41,9 @@ public class Player {
} }
public ImageView getPlayerView() { // public ImageView getPlayerView() {
return playerView; // return playerView;
} // }
public Image getImage() { public Image getImage() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment