diff --git a/src/states/Object.java b/src/states/Object.java index 93b8af2f7c3740e39473541a91f976943b3a33d6..de244067e2da382e44e5b66c17932aaad2a449b1 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 6824c837ba2e8e9cdcbf2a538a5a6a9c1a7f4744..ce12563dd3fb2ddf572fb1128d2f61d8cc076f12 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 34107c7cd8b7c3615b6a333b10f5e2d12b1e2411..9a8609a7a059ec6bfae0f4da5cce2048cc594a9b 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 95d9263e1e7012d2bdf20a6cae36bb77ea388590..f4774fda86fb0164d80b9baccf89d43b453612e0 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; + } } }