From f16f3ca290f0057d9413a1561054e177f97de214 Mon Sep 17 00:00:00 2001 From: Oscar Wiberg <oscarwiberg@Oscars-MacBook-Air-4.local> Date: Thu, 30 Jan 2025 21:46:18 +0100 Subject: [PATCH] =?UTF-8?q?tror=20allt=20=C3=A4r=20som=20det=20ska=20vara?= =?UTF-8?q?=20nu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/states/Object.java | 2 +- src/states/PlayState.java | 45 +++++++++++++++++++----------------- src/states/PowerUp.java | 13 +++++++++++ src/states/SpeedPowerUp.java | 4 +++- 4 files changed, 41 insertions(+), 23 deletions(-) diff --git a/src/states/Object.java b/src/states/Object.java index 93b8af2..de24406 100644 --- a/src/states/Object.java +++ b/src/states/Object.java @@ -18,7 +18,7 @@ public abstract class Object { protected double posY; private double height; private double width; - private Image img; + protected Image img; public Object(String image, double x, double y, double h, double w) { diff --git a/src/states/PlayState.java b/src/states/PlayState.java index 6824c83..ce12563 100644 --- a/src/states/PlayState.java +++ b/src/states/PlayState.java @@ -37,7 +37,7 @@ public class PlayState extends GameState { private boolean isPowerUpActive; private int num; private String bombImg; - private PowerUp last; + private PowerUp last = null; private PowerUp pw; private boolean speedActive; @@ -50,8 +50,9 @@ public class PlayState extends GameState { gameOverText = "GAMEOVER\n" + informationText; fontColor = Color.BLACK; scoreText = "Highscore: " + Integer.toString(score.getHighScore()); - - + extraLife = new ExtraLifePowerUp(Constants.lifeImg, 1200.00, Constants.powerHeight, Constants.powerWidth); + speedUp = new SpeedPowerUp(Constants.powerImg, 1200.00, Constants.powerHeight, Constants.powerWidth); + if (mode) { mode1(); } else { @@ -130,14 +131,12 @@ public class PlayState extends GameState { if (isPowerUpActive && !speedActive) { - if (last == speedUp) { - num = 1; - } + if (num == 0) { drawSpeedUp(g); last = speedUp; - } else if (num == 1){ + } else { drawExtraLife(g); last = extraLife; } @@ -155,6 +154,7 @@ public class PlayState extends GameState { public void drawExtraLife(GraphicsContext g) { if(extraLife.getX() < 0 - Constants.playerWidth) { +// extraLife.setImage(Constants.lifeImg); extraLife.setX(Constants.screenWidth); isPowerUpActive = false; } @@ -189,9 +189,9 @@ public class PlayState extends GameState { flyingEnemy.resetBombDrop(); speedCheck(); - int r = getRandom(); + - if(r == 1) { + if(getRandom() == 1) { isFlyingEnemyActive = false; } @@ -224,18 +224,21 @@ 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 + + // 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) { + if (player.getPasses() % 6 == 0) { movingSpeed += 1; System.out.println("speed set to: " + Integer.toString(movingSpeed)); - } 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(); -// } + } else if (player.getPasses() > 1 && player.getPasses() % 2 == 0) { //denna bör ändras till något som aldrig klaffar med den ovan + // if (movingSpeed < 100) { + isPowerUpActive = true; +// num = getRandom(); + num = 1; + System.out.println(num); + + // } } } @@ -244,15 +247,15 @@ public class PlayState extends GameState { } public void setSpeed(int s) { - + if (s == 100) { speedActive = true; } else { speedActive = false; } - + movingSpeed = s; - + } diff --git a/src/states/PowerUp.java b/src/states/PowerUp.java index 34107c7..9a8609a 100644 --- a/src/states/PowerUp.java +++ b/src/states/PowerUp.java @@ -1,7 +1,11 @@ package states; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.util.Random; +import javafx.scene.image.Image; + /** * @author oscarwiberg, filipyhde * Powerup bygger vidare på object eftersom vi fortfarande vill komma åt kollisionshanteringen @@ -38,11 +42,20 @@ public abstract class PowerUp extends Object{ public void checkCollision(Player player, PlayState playState) { if (this.playerObjectCollision(player)) { use(player, playState); + this.setX(-1000); scoreSinceActive = player.getPasses(); } } + public void setImage(String s) { + try { + this.img = new Image(new FileInputStream(s)); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + + } + } public abstract void use(Player player, PlayState playState); diff --git a/src/states/SpeedPowerUp.java b/src/states/SpeedPowerUp.java index 95d9263..f4774fd 100644 --- a/src/states/SpeedPowerUp.java +++ b/src/states/SpeedPowerUp.java @@ -1,5 +1,7 @@ package states; +import constants.Constants; + /** * @author oscarwiberg, filipyhde * Denhär klassen har en liten längre chain of events vid kollision. Vi kallar på handle i playstate, sparar hur många passes vi gjort samt nuvarande hastighet i spelet @@ -38,12 +40,12 @@ public class SpeedPowerUp extends PowerUp { this.checkCollision(player, playState); } else { - if ((player.getPasses() - start) >= 5) { playState.setSpeed(speed); player.lockLives(false); player.setPlayerY(265); active = false; + } } } -- GitLab