diff --git a/src/HighScore.txt b/src/HighScore.txt index bf0d87ab1b2b0ec1a11a3973d2845b42413d9767..da2d3988d7d1a255376770b1e87394ebb42febb3 100644 --- a/src/HighScore.txt +++ b/src/HighScore.txt @@ -1 +1 @@ -4 \ No newline at end of file +14 \ No newline at end of file diff --git a/src/states/Enemy.java b/src/states/Enemy.java index b3b2a9fc85342fecb01449e8e41098884ab04022..40c763ca93e9115288ed2a54e445900b51db97d0 100644 --- a/src/states/Enemy.java +++ b/src/states/Enemy.java @@ -45,21 +45,7 @@ public class Enemy extends Antagonist{ } return false; - // if ((enemyX < (player.getPlayerX() + 80.00)) && ((enemyX) > player.getPlayerX())) { //borde vara +80 på enemyx men funkar ej - //// if((player.getPlayerY() + 60.00) >= enemyY) { - //// if((player.getPlayerY() + 60.00) >= enemyY) { - // // if ((enemyY + 80 > (player.getPlayerY())) && ((player.getPlayerY() + 80) > enemyY)) { - // hit = true; - // player.decreaseLives(); - //// if (hit && enemyX < player.getPlayerX() + 100) { - //// hit = false; - //// } - // - // } - // - // System.out.println("helooooooooo"); - // - // return hit; + } diff --git a/src/states/FlyingEnemy.java b/src/states/FlyingEnemy.java index 66f5baf705f4b2749696c93af3b43c46c780d7c4..e10938fb1328d42d7bf26fea2c94086e962b0d5d 100644 --- a/src/states/FlyingEnemy.java +++ b/src/states/FlyingEnemy.java @@ -70,22 +70,16 @@ public class FlyingEnemy extends Antagonist{ // this.enemyY.add(200.00); this.enemyY.add(210.00); // this.enemyY.add(220.00); - this.enemyY.add(250.00); +// this.enemyY.add(250.00); } @Override public boolean playerAntagonistCollision(Player player) { -// boolean hit = false; - -// boolean collisionX = player.getPlayerX() < (x + Constants.enemyWidth) && (player.getPlayerX() + Constants.playerWidth) > x; -// -// // Check for collision on the y-axis -// boolean collisionY = player.getPlayerY() < (currY + Constants.enemyHeight) && (player.getPlayerY() + Constants.playerHeight) > currY; - + boolean collisionX = player.getPlayerX() < (x + 60.00) && (player.getPlayerX() + 60.00) > x; // Check for collision on the y-axis - boolean collisionY = player.getPlayerY() < (currY + 45.00) && (player.getPlayerY() + 60.00) > currY; + boolean collisionY = player.getRect() < (currY + 60.00) && (player.getRect() + 60.00) > currY; if (collisionX && collisionY && !collisionDetected) { @@ -98,26 +92,9 @@ public class FlyingEnemy extends Antagonist{ collisionDetected = false; } -// if ((x < (player.getPlayerX() + 80.00)) && ((x) > player.getPlayerX())) { //borde vara +80 på enemyx men funkar ej -// // if((player.getPlayerY() + 60.00) >= enemyY) { -// if((player.getPlayerY() > currY +80)) { -// // if ((enemyY + 80 > (player.getPlayerY())) && ((player.getPlayerY() + 80) > enemyY)) { -// -// hit = false; -// player.decreaseLives(); -// // if (hit && enemyX < player.getPlayerX() + 100) { -// // hit = false; -// // } -// -// } -// -// } return false; - - // public void setEnemyY() { - // enemyY = 0.0; - // + } @Override diff --git a/src/states/MenuState.java b/src/states/MenuState.java index 47b2e6e33c7a5d3e963020cb4e8470560b321e28..e32016fb176fc04943f4b6cf1ba1a8f875de2715 100644 --- a/src/states/MenuState.java +++ b/src/states/MenuState.java @@ -60,9 +60,7 @@ public class MenuState extends GameState { // Print the information text, centered on the canvas g.fillText(informationText, Constants.screenWidth/4, Constants.screenHeight / 4); g.drawImage(dinosaur, Constants.screenWidth/2, Constants.screenHeight/2, 200, 200); - // Can also use: - // g.setStroke(fontColor); - // g.strokeText(informationText, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); + } diff --git a/src/states/PlayState.java b/src/states/PlayState.java index acc0f77cfcc71a961a619148cc79285ff131c88b..0c2a43eb681715097e83999d438812a3a690ee22 100644 --- a/src/states/PlayState.java +++ b/src/states/PlayState.java @@ -6,6 +6,7 @@ import javafx.scene.image.Image; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.paint.Color; +import javafx.scene.shape.Rectangle; import javafx.scene.text.Font; import javafx.scene.text.Text; @@ -74,12 +75,14 @@ public class PlayState extends GameState { scoreText = "Highscore: " + Integer.toString(score.getHighScore()); // + Integer.toString(score.getHighScore()); + if (mode) { mode1(); } else { mode2(); } + // menu = new MenuState(model); } @@ -144,6 +147,13 @@ public class PlayState extends GameState { // Ritar enemy och player // g.drawImage(extraLife.getImage(), extraLife.getPowerUpX(), extraLife.getPowerUpY(), 40, 40); g.drawImage(player.getImage(), player.getPlayerX(), player.getPlayerY(), Constants.playerWidth, Constants.playerHeight); + g.setStroke(Color.BLACK); // Set the rectangle's border color + g.setLineWidth(2); // Set the border width + if (!down) { + g.strokeRect(player.getPlayerX(), player.getPlayerY(), Constants.playerWidth, Constants.playerHeight); + } else { + g.strokeRect(player.getPlayerX(), player.getPlayerY() + 40, Constants.playerWidth, Constants.playerHeight); + } // g.drawImage(enemy.getImage(), enemy.getEnemyX(), enemy.getEnemyY(), Constants.enemyWidth, Constants.enemyHeight); drawEnemy(g); @@ -157,9 +167,19 @@ public class PlayState extends GameState { engen = new Random(); - g.drawImage(enemy.getImage(), enemy.getX(), enemy.getY(), Constants.enemyWidth, Constants.enemyHeight); - if (enemy.getX() < 0 - Constants.enemyWidth) { - enemy.setAntagonistX(Constants.screenWidth); + // g.drawImage(enemy.getImage(), enemy.getX(), enemy.getY(), Constants.enemyWidth, Constants.enemyHeight); + // if (enemy.getX() < 0 - Constants.enemyWidth) { + // enemy.setAntagonistX(Constants.screenWidth); + // player.updatePasses(1); + // } + + g.strokeRect(flyingEnemy.getX(), flyingEnemy.getY(), Constants.enemyWidth, Constants.enemyHeight); + + + + g.drawImage(flyingEnemy.getImage(), flyingEnemy.getX(), tempy, Constants.enemyWidth, Constants.enemyHeight); + if (flyingEnemy.getX() < 0 - Constants.enemyWidth) { + flyingEnemy.setAntagonistX(Constants.screenWidth); player.updatePasses(1); } @@ -210,6 +230,7 @@ public class PlayState extends GameState { // Spelaren kan inte ducka om den är mitt i ett hopp if (!up) { down = true; + } break; @@ -227,27 +248,29 @@ public class PlayState extends GameState { //om enemy position är mindre än player och collide är true kollar den inte collision // Enemy hoppar 10 snäpp till vänster för varje update - enemy.setAntagonistX(enemy.getX()-10); + // enemy.setAntagonistX(enemy.getX()-10); + flyingEnemy.setAntagonistX(flyingEnemy.getX()-10); // flyingEnemy.setAntagonistX(flyingEnemy.getX() -10); // Om if (!gameOver) { if (!collided) { - collided = enemy.playerAntagonistCollision(player); + // collided = enemy.playerAntagonistCollision(player); + collided = flyingEnemy.playerAntagonistCollision(player); if (Integer.valueOf(player.getLives()) == 0) { gameOver = true; } } - if (collided && enemy.getX() < player.getPlayerX()) { + if (collided && flyingEnemy.getX() < player.getPlayerX()) { collided = false; } - + if (up) { @@ -261,14 +284,35 @@ public class PlayState extends GameState { if (down) { player.slide(slidingPlayer); + } } } + public void checkCollision() { + + + if((player.getPlayerY() + 60) >= enemy.getY() ) { + collided = true; + // System.out.println("fäk"); + if (Integer.valueOf(player.getLives()) == 1) { + // menu = new MenuState(model); + // model.switchState(menu); + gameOver = true; + score.saveScore(clearedEnemies); + + } + player.decreaseLives(); + // System.out.println(player.getLives()); + + } + + } + // Here one would probably instead move the player and any diff --git a/src/states/Player.java b/src/states/Player.java index 9b9b706612cad69b19c8d573e7fd2448b655b4fd..a57c00bc2aae551409642741973feee0977e2f39 100644 --- a/src/states/Player.java +++ b/src/states/Player.java @@ -2,6 +2,7 @@ package states; import java.io.FileInputStream; + import java.io.FileNotFoundException; import constants.Constants; @@ -25,12 +26,8 @@ public class Player { private Image slidingImage; private Image currImage = null; private int passes = 0; - // private ImageView playerView; - - -// public double getPlayerHeight() { -// return playerHeight; -// } + private Rectangle bounds; + private double topPos = playerY; @@ -54,6 +51,8 @@ public class Player { public Player(String playerImg) { + bounds = new Rectangle(playerX, topPos, Constants.playerWidth, Constants.playerHeight); + try { image = new Image(new FileInputStream(playerImg)); //slidingImage = new Image(new FileInputStream(Constants.slidingPlayerImg)); @@ -68,7 +67,9 @@ public class Player { } - + public double getRect() { + return topPos; + } public Image getImage() { @@ -143,6 +144,7 @@ public class Player { currImage = slidingImage; + topPos = 305.00; } @@ -160,6 +162,7 @@ public class Player { public void standUp() { currImage = image; + topPos = playerY; }