diff --git a/src/Images1/fly.png b/src/Images1/fly.png new file mode 100644 index 0000000000000000000000000000000000000000..d967e9553eb7379d5076ae3fc21cf1ca9d2e9bba Binary files /dev/null and b/src/Images1/fly.png differ diff --git a/src/constants/Constants.java b/src/constants/Constants.java index e6ea26b99247a60ca6dacd1edab6d06b7fd1c622..a1007ecdf360b557619a8041c4d250afc7369189 100644 --- a/src/constants/Constants.java +++ b/src/constants/Constants.java @@ -36,6 +36,7 @@ public interface Constants { //enemies String enemyImg = "src/Images1/tree.png"; + String flyingEnemyImg = "src/Images1/fly.png"; double enemyWidth = 100; double enemyHeight = 100; diff --git a/src/states/FlyingEnemy.java b/src/states/FlyingEnemy.java index 290a41b3757d7002809f7cad1f9180cf3173c63c..7bb36de09b6bdb04f02b5d326a47e48fa469a48f 100644 --- a/src/states/FlyingEnemy.java +++ b/src/states/FlyingEnemy.java @@ -1,35 +1,56 @@ package states; +import java.util.ArrayList; import java.util.Random; import javafx.scene.image.Image; public class FlyingEnemy extends Enemy{ - private double enemyX = -100.00; - private double enemyY = 0; - private Image image; - private Random rnd; +// private double enemyX = -100.00; + private ArrayList<Double> enemyY; +// = {250, 200, 150,100}; +// private Image image; + 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; } - +// System.out.println(weather.get(rnd.nextInt(weather.size()))); + + @Override public double getEnemyY() { + + 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. - - return enemyY; +// double enlen = enemyY.length; +// +// double temp = 0.0; +// +// temp = enemyY[(int) rnd.nextDouble(enlen)]; +// +// return temp; } - public void setEnemyY() { - enemyY = 0; - - } +// public void setEnemyY() { +// enemyY = 0.0; +// +// } } diff --git a/src/states/PlayState.java b/src/states/PlayState.java index 173d4fbbbf968d2f36de789c27fc08d0056be65f..dfb553f27eeaa390b8a0f79bcdb994e782aea2a1 100644 --- a/src/states/PlayState.java +++ b/src/states/PlayState.java @@ -1,6 +1,7 @@ package states; import javafx.scene.canvas.GraphicsContext; + import javafx.scene.image.Image; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; @@ -51,6 +52,7 @@ public class PlayState extends GameState { private int clearedEnemies; private String scoreText; private ExtraLifePowerUp extraLife; + private FlyingEnemy flyingEnemy; /* Class only used for testing */ @@ -71,6 +73,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); // menu = new MenuState(model); @@ -85,7 +88,6 @@ public class PlayState extends GameState { g.setFill(fontColor); g.setFont(new Font(30)); // Big letters - // ritar liv kvar + nuvarande highscore om det inte är gameover, annars ritar den bara gemaovertexten if (!gameOver) { @@ -126,6 +128,14 @@ public class PlayState extends GameState { if (enemy.getEnemyX() < 0 - Constants.enemyWidth) { enemy.setEnemyX(Constants.screenWidth); } + + g.drawImage(flyingEnemy.getImage(), Constants.screenWidth/2, Constants.screenHeight/2, Constants.enemyWidth, Constants.enemyHeight); + + + + + + } @@ -175,6 +185,7 @@ public class PlayState extends GameState { // Enemy hoppar 10 snäpp till vänster för varje update enemy.setEnemyX(enemy.getEnemyX()-10); + flyingEnemy.setEnemyX(flyingEnemy.getEnemyX() -10); // Om if (!gameOver) {