From 41928171b040545303c6a0f4fedca7be74dacf90 Mon Sep 17 00:00:00 2001 From: Oscar Wiberg <oscarwiberg@Oscars-MacBook-Air-3.local> Date: Sun, 28 Jul 2024 20:33:59 +0200 Subject: [PATCH] =?UTF-8?q?=C3=A4ndring=20klass=20struktur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/HighScore.txt | 2 +- src/Images1/Voltage Emoji.png | Bin 0 -> 34242 bytes src/states/Antagonist.java | 47 +++++++++++ src/states/Enemy.java | 15 ++-- src/states/FlyingEnemy.java | 143 ++++++++++++++++++++++++---------- src/states/PlayState.java | 90 +++++++++++++++------ src/states/Player.java | 17 ++++ 7 files changed, 244 insertions(+), 70 deletions(-) create mode 100644 src/Images1/Voltage Emoji.png create mode 100644 src/states/Antagonist.java diff --git a/src/HighScore.txt b/src/HighScore.txt index e440e5c..25bf17f 100644 --- a/src/HighScore.txt +++ b/src/HighScore.txt @@ -1 +1 @@ -3 \ No newline at end of file +18 \ No newline at end of file diff --git a/src/Images1/Voltage Emoji.png b/src/Images1/Voltage Emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5098efd02fe4ba34a86c653176ce31589b9905 GIT binary patch literal 34242 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 Y%udL#mc69Tz`(%Z>FVdQ&MBb@0N08qng9R* literal 0 HcmV?d00001 diff --git a/src/states/Antagonist.java b/src/states/Antagonist.java new file mode 100644 index 0000000..a451535 --- /dev/null +++ b/src/states/Antagonist.java @@ -0,0 +1,47 @@ +package states; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; + +import javafx.scene.image.Image; + +public abstract class Antagonist { + + protected double x; + protected double y; + protected Image img; + protected boolean collisionDetected; + + + public Antagonist(String image, double x, double y) { + this.x = x; + this.y = y; + this.collisionDetected = false; + + try { + this.img = new Image(new FileInputStream(image)); + + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public abstract boolean playerAntagonistCollision(Player player); + + public void setAntagonistX(double pos) { + this.x = pos; + } + + public double getX() { + return x; + } + + public abstract double getY(); + + + public Image getImage() { + return img; + } + +} diff --git a/src/states/Enemy.java b/src/states/Enemy.java index 58d0370..778e529 100644 --- a/src/states/Enemy.java +++ b/src/states/Enemy.java @@ -1,6 +1,7 @@ package states; import java.io.FileInputStream; + import java.io.FileNotFoundException; import constants.Constants; @@ -18,7 +19,7 @@ public class Enemy { try { image = new Image(new FileInputStream(enemyImg)); - + } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -32,15 +33,19 @@ public class Enemy { public boolean playerEnemyCollision(Player player) { boolean hit = false; - if ((enemyX <= (player.getPlayerX() + 80)) && (enemyX > player.getPlayerX())) { - if((player.getPlayerY() + 60) >= enemyY) { + 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()) { +// if (hit && enemyX < player.getPlayerX() + 100) { // hit = false; // } + } - } + return hit; } diff --git a/src/states/FlyingEnemy.java b/src/states/FlyingEnemy.java index 7bb36de..d31642b 100644 --- a/src/states/FlyingEnemy.java +++ b/src/states/FlyingEnemy.java @@ -1,56 +1,121 @@ package states; import java.util.ArrayList; +import constants.Constants; import java.util.Random; import javafx.scene.image.Image; -public class FlyingEnemy extends Enemy{ - -// private double enemyX = -100.00; +public class FlyingEnemy extends Antagonist{ + +// private double enemyX = 800.00; private ArrayList<Double> enemyY; -// = {250, 200, 150,100}; -// private Image image; + private double currY; private Random rnd = new Random(); - - - public FlyingEnemy(String enemyImg) { - super(enemyImg); - enemyY = new ArrayList<Double>(); - enemyY.add(100.0); - enemyY.add(150.0); - enemyY.add(200.0); - enemyY.add(250.0); -// double[] enemyY = {250, 200, 150,100}; -// enemyY[0] = 100.0; -// enemyY[1] = 150.0; -// enemyY[2] = 200.0; -// enemyY[3] = 250.0; - + + + public FlyingEnemy(String enemyImg, double x, double y) { + super(enemyImg, x, y); + this.enemyY = new ArrayList<Double>(); + this.enemyY.add(150.0); + this.enemyY.add(180.0); + this.enemyY.add(200.0); + this.enemyY.add(250.0); + // enemyY.add(265.00); + // enemyY.add(265.00); + // enemyY.add(265.00); + // enemyY.add(265.00); + + + // double[] enemyY = {250, 200, 150,100}; + // enemyY[0] = 100.0; + // enemyY[1] = 150.0; + // enemyY[2] = 200.0; + // enemyY[3] = 250.0; + } - -// System.out.println(weather.get(rnd.nextInt(weather.size()))); + + // System.out.println(weather.get(rnd.nextInt(weather.size()))); + + + +// public boolean playerFlyingEnemyCollision(Player player) { +// boolean hit = 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) >= currY) { +// // if ((enemyY + 80 > (player.getPlayerY())) && ((player.getPlayerY() + 80) > enemyY)) { +// +// hit = true; +// player.decreaseLives(); +// // if (hit && enemyX < player.getPlayerX() + 100) { +// // hit = false; +// // } +// +// } +// +// } +// +// return hit; +// +// // public void setEnemyY() { +// // enemyY = 0.0; +// // +// } @Override - public double getEnemyY() { + public boolean playerAntagonistCollision(Player player) { +// boolean hit = false; - return enemyY.get(rnd.nextInt(enemyY.size())); - -// Gör en random generator här som returnerar Y koordinat slumpmässigt inom ett spann(om y koordinaten är 0). -// När enemy är ute ur frame sätter vi ykoordinaten till 0 så att den kan få en ny vid nästa passering. -// double enlen = enemyY.length; -// -// double temp = 0.0; -// -// temp = enemyY[(int) rnd.nextDouble(enlen)]; -// -// return temp; +// 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) && (player.getPlayerX() + 60) > x; + + // Check for collision on the y-axis + boolean collisionY = player.getPlayerY() < (currY + 60) && (player.getPlayerY() + 60) > currY; + + + if (collisionX && collisionY && !collisionDetected) { + player.decreaseLives(); + collisionDetected = true; + return true; + } + + if (!collisionX) { + 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 + public double getY() { + + currY = enemyY.get(rnd.nextInt(enemyY.size())); + return currY; } - -// public void setEnemyY() { -// enemyY = 0.0; -// -// } } diff --git a/src/states/PlayState.java b/src/states/PlayState.java index dfb553f..653bfd0 100644 --- a/src/states/PlayState.java +++ b/src/states/PlayState.java @@ -11,6 +11,7 @@ import javafx.scene.text.Text; import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.util.Random; import constants.Constants; @@ -53,6 +54,8 @@ public class PlayState extends GameState { private String scoreText; private ExtraLifePowerUp extraLife; private FlyingEnemy flyingEnemy; + private double tempy; + private Random engen; /* Class only used for testing */ @@ -73,7 +76,7 @@ public class PlayState extends GameState { player = new Player(Constants.playerImg); enemy = new Enemy(Constants.enemyImg); extraLife = new ExtraLifePowerUp(Constants.lifeImg); - flyingEnemy = new FlyingEnemy(Constants.flyingEnemyImg); + flyingEnemy = new FlyingEnemy(Constants.flyingEnemyImg, 800.00, 0.00); // menu = new MenuState(model); @@ -96,6 +99,7 @@ public class PlayState extends GameState { g.fillText(scoreText, 0, 60); } else { g.fillText(gameOverText, Constants.screenWidth/2, 200); + score.saveScore(player.getPasses()); } // ritar ut marklinjen @@ -107,37 +111,72 @@ public class PlayState extends GameState { // om enemy är ute ur frame, ställer dem om positionen på den så att den börjar om - + // Ritar enemy och player - g.drawImage(extraLife.getImage(), extraLife.getPowerUpX(), extraLife.getPowerUpY(), 40, 40); +// g.drawImage(extraLife.getImage(), extraLife.getPowerUpX(), extraLife.getPowerUpY(), 40, 40); g.drawImage(player.getImage(), player.getPlayerX(), player.getPlayerY(), Constants.playerWidth, Constants.playerHeight); // g.drawImage(enemy.getImage(), enemy.getEnemyX(), enemy.getEnemyY(), Constants.enemyWidth, Constants.enemyHeight); drawEnemy(g); - -// TODO kanske göra en random här också, som väljer om vi ska rita de olika enemies eller powerupsen. Vid en viss score -// TODO kommer möjligheten att ta powerups eller möta flyingenemy - + + // TODO kanske göra en random här också, som väljer om vi ska rita de olika enemies eller powerupsen. Vid en viss score + // TODO kommer möjligheten att ta powerups eller möta flyingenemy + } - + public void drawEnemy(GraphicsContext g) { + engen = new Random(); -// enemy = new Enemy(Constants.enemyImg); - g.drawImage(enemy.getImage(), enemy.getEnemyX(), enemy.getEnemyY(), Constants.enemyWidth, Constants.enemyHeight); - if (enemy.getEnemyX() < 0 - Constants.enemyWidth) { - enemy.setEnemyX(Constants.screenWidth); - } - - g.drawImage(flyingEnemy.getImage(), Constants.screenWidth/2, Constants.screenHeight/2, Constants.enemyWidth, Constants.enemyHeight); - - - - - +// +// if (player.getPasses() > 5) { +// boolean b = engen.nextBoolean(); +// System.out.println(b); +// +// if (b) { + g.drawImage(flyingEnemy.getImage(), flyingEnemy.getX(), tempy, 80, 80); + if (flyingEnemy.getX() < 0 - Constants.enemyWidth) { + flyingEnemy.setAntagonistX(Constants.screenWidth); + tempy = flyingEnemy.getY(); + player.updatePasses(1); + + } +// } else if (!b){ +// g.drawImage(enemy.getImage(), enemy.getEnemyX(), enemy.getEnemyY(), Constants.enemyWidth, Constants.enemyHeight); +// if (enemy.getEnemyX() < 0 - Constants.enemyWidth) { +// enemy.setEnemyX(Constants.screenWidth); +// player.updatePasses(1); +// } + +// } +// } else { +// g.drawImage(enemy.getImage(), enemy.getEnemyX(), enemy.getEnemyY(), Constants.enemyWidth, Constants.enemyHeight); +// if (enemy.getEnemyX() < 0 - Constants.enemyWidth) { +// enemy.setEnemyX(Constants.screenWidth); +// player.updatePasses(1); +// } + +// } + // enemy = new Enemy(Constants.enemyImg); + + + + + //TODO om score är större än visst antal --> lotta mellan flying och vanlig, vi kan göra en random med 2 int, ochberoende på vad den blir kan vi rita en + //TODO göra en variabel för y positionen som hämtas om vi ritar flygande, för att den ska behålla samma position på hela y axeln + + + + + + + + + + } @@ -184,19 +223,20 @@ public class PlayState extends GameState { clearedEnemies ++; // Enemy hoppar 10 snäpp till vänster för varje update - enemy.setEnemyX(enemy.getEnemyX()-10); - flyingEnemy.setEnemyX(flyingEnemy.getEnemyX() -10); +// enemy.setEnemyX(enemy.getEnemyX()-10); + flyingEnemy.setAntagonistX(flyingEnemy.getX() -10); // Om if (!gameOver) { - + if (!collided) { - collided = enemy.playerEnemyCollision(player); +// collided = enemy.playerEnemyCollision(player); + collided = flyingEnemy.playerAntagonistCollision(player); if (Integer.valueOf(player.getLives()) == 0) { gameOver = true; } } - if (collided && enemy.getEnemyX() < player.getPlayerX()) { + if (collided && flyingEnemy.getX() < player.getPlayerX()) { collided = false; } diff --git a/src/states/Player.java b/src/states/Player.java index 15d264e..8378c54 100644 --- a/src/states/Player.java +++ b/src/states/Player.java @@ -24,9 +24,26 @@ public class Player { private boolean up = false; private Image slidingImage; private Image currImage = null; + private int passes = 0; // private ImageView playerView; + public int getPasses() { + return passes; + } + + + + + + public void updatePasses(int passes) { + this.passes += passes; + } + + + + + public Player(String playerImg) { try { -- GitLab