From 36a981b211fe44592ab5b4d5a0b855a619b81413 Mon Sep 17 00:00:00 2001
From: Oscar Wiberg <oscarwiberg@Oscars-MacBook-Air-4.local>
Date: Thu, 30 Jan 2025 16:25:44 +0100
Subject: [PATCH] fixa om lite med powerups nu

---
 src/states/ExtraLifePowerUp.java |  4 +--
 src/states/Object.java           | 44 +++++++++++++++++++++-----------
 src/states/PlayState.java        | 25 ++++++++----------
 src/states/PowerUp.java          |  9 +++++--
 src/states/SpeedPowerUp.java     |  4 +--
 5 files changed, 51 insertions(+), 35 deletions(-)

diff --git a/src/states/ExtraLifePowerUp.java b/src/states/ExtraLifePowerUp.java
index e65f26a..094b317 100644
--- a/src/states/ExtraLifePowerUp.java
+++ b/src/states/ExtraLifePowerUp.java
@@ -8,8 +8,8 @@ package states;
 
 public class ExtraLifePowerUp extends PowerUp {
 
-	public ExtraLifePowerUp(String image, double x, double y, double h, double w) {
-		super(image, x, y, h, w);
+	public ExtraLifePowerUp(String image, double x, double h, double w) {
+		super(image, x, h, w);
 	}
 
 	@Override
diff --git a/src/states/Object.java b/src/states/Object.java
index 026a78f..93b8af2 100644
--- a/src/states/Object.java
+++ b/src/states/Object.java
@@ -13,7 +13,7 @@ import javafx.scene.shape.Rectangle;
  * 
  */
 public abstract class Object {
-	
+
 	protected double posX;
 	protected double posY; 
 	private double height;
@@ -21,21 +21,35 @@ public abstract class Object {
 	private Image img;
 
 	public Object(String image, double x, double y, double h, double w) {
-		
+
 		posY = y;
 		posX = x;
 		width = w;
 		height = h;
-	
+
 		try {
 			img = new Image(new FileInputStream(image));
-			
+
 		} catch (FileNotFoundException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
 	}
-	
+
+	public Object(String image, double x, double h, double w) {
+		posX = x;
+		width = w;
+		height = h;
+
+		try {
+			img = new Image(new FileInputStream(image));
+
+		} catch (FileNotFoundException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
 	public double getX() {
 		return posX;
 	}
@@ -47,8 +61,8 @@ public abstract class Object {
 	public Image getImage() {
 		return img;
 	}
-	
-	
+
+
 	public void setX(double posX) {
 		this.posX = posX;
 	}
@@ -67,7 +81,7 @@ public abstract class Object {
 
 	public boolean playerObjectCollision(Player player) {
 		boolean hit = false;
-		
+
 		double playerX = player.getPlayerX();
 		double playerY = player.getPlayerY();
 
@@ -79,7 +93,7 @@ public abstract class Object {
 		double centeredX = playerX + (Constants.playerWidth - smallerWidth) / 2;
 		double centeredY = playerY + (Constants.playerHeight - smallerHeight) / 2;
 
-		
+
 		Bounds playerRect = new Rectangle(centeredX, centeredY, smallerWidth, smallerHeight).getBoundsInParent();
 
 
@@ -88,12 +102,12 @@ public abstract class Object {
 		if (playerRect.intersects(objectRect)) {
 			hit = true;
 		}
-		
+
 		return hit;
 	}
-	
-	
-	
-//	här kommer de två olika powerupsen avgöra vad som händer när ma ta den, denna klass kallar på kollisionen
-	
+
+
+
+	//	här kommer de två olika powerupsen avgöra vad som händer när ma ta den, denna klass kallar på kollisionen
+
 }
diff --git a/src/states/PlayState.java b/src/states/PlayState.java
index d56e72a..6824c83 100644
--- a/src/states/PlayState.java
+++ b/src/states/PlayState.java
@@ -37,12 +37,12 @@ public class PlayState extends GameState {
 	private boolean isPowerUpActive;
 	private int num;
 	private String bombImg;
-	private PowerUp last = null;
+	private PowerUp last;
+	private PowerUp pw;
 	private boolean speedActive;
 
 
 
-
 	public PlayState(GameModel model, boolean mode) {
 		super(model);
 		informationText = "Press Escape \nTo Return To The Menu";
@@ -50,7 +50,8 @@ public class PlayState extends GameState {
 		gameOverText = "GAMEOVER\n" + informationText;
 		fontColor = Color.BLACK;
 		scoreText = "Highscore: " + Integer.toString(score.getHighScore());
-
+	
+		
 		if (mode) {
 			mode1();
 		} else {
@@ -61,9 +62,7 @@ public class PlayState extends GameState {
 
 	public void mode1() {
 		player = new Player(Constants.playerImg);
-		enemy = new Enemy(Constants.enemyImg, 900.00, 270.00, Constants.enemyHeight, Constants.enemyWidth);
-		extraLife = new ExtraLifePowerUp(Constants.lifeImg, 1200.00, 170, Constants.powerHeight, Constants.powerWidth);
-		speedUp = new SpeedPowerUp(Constants.powerImg, 1200.00, 265.00, Constants.powerHeight, Constants.powerWidth);
+		enemy = new Enemy(Constants.enemyImg, 900.00, 270.00, Constants.enemyHeight, Constants.enemyWidth);	
 		flyingEnemy = new FlyingEnemy(Constants.flyingEnemyImg, 900.00, 20.00, Constants.enemyHeight, Constants.enemyWidth);
 		bombImg = Constants.bombImg;
 		bgColor = Color.ROYALBLUE;
@@ -74,8 +73,6 @@ public class PlayState extends GameState {
 	public void mode2() {
 		player = new Player(Constants.playerImg2);
 		enemy = new Enemy(Constants.enemyImg2, 900.00, 270.00, Constants.enemyHeight, Constants.enemyWidth);
-		extraLife = new ExtraLifePowerUp(Constants.lifeImg, -100.00, 270, Constants.powerHeight, Constants.powerWidth);
-		speedUp = new SpeedPowerUp(Constants.powerImg, -100.00, 265.00, Constants.powerHeight, Constants.powerWidth);
 		flyingEnemy = new FlyingEnemy(Constants.flyingEnemyImg2, 900.00, 20.00, Constants.enemyHeight, Constants.enemyWidth);
 		bombImg = Constants.bombImg2;
 		bgColor = Color.BEIGE;
@@ -138,11 +135,11 @@ public class PlayState extends GameState {
 			}
 			if (num == 0) {
 				drawSpeedUp(g);
-				last = null;
+				last = speedUp;
 
 			} else if (num == 1){
 				drawExtraLife(g);
-				last = null;
+				last = extraLife;
 			}
 		}
 	}
@@ -154,8 +151,6 @@ public class PlayState extends GameState {
 		}
 
 		g.drawImage(speedUp.getImage(), speedUp.getX(), speedUp.getY(), Constants.powerWidth, Constants.powerHeight);
-
-		last = speedUp;
 	}
 
 	public void drawExtraLife(GraphicsContext g) {
@@ -165,7 +160,6 @@ public class PlayState extends GameState {
 		}
 		g.drawImage(extraLife.getImage(), extraLife.getX(), extraLife.getY(), Constants.powerWidth, Constants.powerHeight);
 
-		last = extraLife;
 	}
 
 	public void drawEnemies(GraphicsContext g) {
@@ -230,11 +224,14 @@ public class PlayState extends GameState {
 	//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
 
+	
+//	kör modulo 6, 10, 15
+//	dessa returnerar bara samma på nummer som är delbara med 30
 	public void speedCheck() {
 		if (player.getPasses() % 5 == 0) {
 			movingSpeed += 1;
 			System.out.println("speed set to: " + Integer.toString(movingSpeed));
-		} else if (player.getPasses() > 10 && player.getPasses() % 2 == 0) {
+		} else if (player.getPasses() > 10 && player.getPasses() % 2 == 0) { //denna bör ändras till något som aldrig klaffar med den ovan
 //			if (movingSpeed < 100) {
 				isPowerUpActive = true;			
 				num = getRandom();
diff --git a/src/states/PowerUp.java b/src/states/PowerUp.java
index f271fab..34107c7 100644
--- a/src/states/PowerUp.java
+++ b/src/states/PowerUp.java
@@ -15,10 +15,15 @@ public abstract class PowerUp extends Object{
 	private int maxH = 110;
 	private int minH = 265;
 
-	public PowerUp(String image, double x, double y, double h, double w) {
-		super(image, x, y, h, w);
+	public PowerUp(String image, double x, double h, double w) {
+		super(image, x, h, w);
 		this.posY = spawn();
 	}
+	
+	
+	
+//	lägg in en ny constructor som bara tar in String image
+//	lägg till en funktion som returnerar en powerup, likt det som har gjortd för bomben i flying enemy
 
 
 	public double spawn() {
diff --git a/src/states/SpeedPowerUp.java b/src/states/SpeedPowerUp.java
index 9b3dd7f..95d9263 100644
--- a/src/states/SpeedPowerUp.java
+++ b/src/states/SpeedPowerUp.java
@@ -12,8 +12,8 @@ public class SpeedPowerUp extends PowerUp {
 	private int speed;
 	private int start;
 
-	public SpeedPowerUp(String image, double x, double y, double h, double w) {
-		super(image, x, y, h, w);
+	public SpeedPowerUp(String image, double x, double h, double w) {
+		super(image, x, h, w);
 	}
 
 	@Override
-- 
GitLab