diff --git a/BlueSpider.java b/BlueSpider.java deleted file mode 100755 index 996efd3..0000000 --- a/BlueSpider.java +++ /dev/null @@ -1,19 +0,0 @@ -import greenfoot.World; - -public class BlueSpider extends Spider { - private final double speed = 0.5; - private final int direction = 1; - private World w; - - public BlueSpider() { - super(); - } - - public void addedToWorld(World w) { - this.w = w; - } - - public void act() { - super.act(); - } -} diff --git a/Coin.java b/Coin.java index ad6164d..2d2101b 100755 --- a/Coin.java +++ b/Coin.java @@ -1,4 +1,3 @@ -import greenfoot.Actor; import greenfoot.GreenfootImage; /** @@ -8,13 +7,13 @@ * @version (a version number or a date) */ public class Coin extends Collection { - private GreenfootImage image; - - public Coin(){ + private final GreenfootImage image; + + public Coin() { image = new GreenfootImage("coin.png"); image.scale(45,45); setImage(image); - + } /** @@ -26,6 +25,5 @@ public void act() { getWorld().removeObject(this); Level.addToTotalCoin(); } - } } diff --git a/Level.java b/Level.java index d7383a6..a5af246 100755 --- a/Level.java +++ b/Level.java @@ -58,7 +58,7 @@ public int[][] loadLevel(int level) { ArrayList data = new ArrayList(); Scanner scan = null; try { - scan = new Scanner(new File("level" + level + ".csv")); + scan = new Scanner(new File("levels/" + level + ".csv")); } catch (FileNotFoundException e) { throw new RuntimeException(e); } @@ -89,6 +89,11 @@ public void spawnTerrain(int[][] identifier) { case 1 -> new Brick(); case 2 -> orb = new Orb(); case 3 -> new Coin(); + case 4 -> new Mites(); + case 5 -> new BlueBee(); + case 6 -> new RedBee(); + case 7 -> new GreenBee(); + case 8 -> new Spider(); default -> null; }; if (a != null) { @@ -98,3 +103,4 @@ public void spawnTerrain(int[][] identifier) { } } } + diff --git a/Level0.java b/Level0.java index 7bf0969..cd9c384 100755 --- a/Level0.java +++ b/Level0.java @@ -24,13 +24,8 @@ public Level0() { addObject(coinLabel, 1100, 10); coinLabel.update("Coins: " + totalCoins); - int[][] blockGeneration = loadLevel(0); spawnTerrain(blockGeneration); - addObject(new BlueBee(), 800, 600); - addObject(new RedBee(), 100, 600); - addObject(new Spider(), 750, 600); - addObject(new Mites(), 150, 600); } public void act() { diff --git a/Level1.java b/Level1.java index 3f56668..af08045 100755 --- a/Level1.java +++ b/Level1.java @@ -25,7 +25,7 @@ public Level1() { coinLabel.update("Coins: " + totalCoins); // Individual Block Placement - int[][] blockGeneration = new int[40][10]; + int[][] blockGeneration = new int[120][20]; blockGeneration[2][5] = 1; spawnTerrain(blockGeneration); } diff --git a/Mites.java b/Mites.java index 98e744c..37a6969 100755 --- a/Mites.java +++ b/Mites.java @@ -5,8 +5,8 @@ public class Mites extends Mobs { private final int hp; private final int dmg; private final int speed; - private final int direction = 1; private final GreenfootImage image; + private int direction = 1; private Level w; private int movementAct; private int jumpAct; @@ -16,6 +16,8 @@ public Mites() { dmg = 1; speed = 2; image = new GreenfootImage("images/mites.png"); + image.scale(64, 43); + setImage(image); } public void addedToWorld(World w) { @@ -26,23 +28,19 @@ public void act() { movementAct--; jumpAct--; movement(); - bounceWall(); + direction = bounceWall(direction, image); collision(); fall(); } - private void flipImage() { - image.mirrorHorizontally(); - } - private void fall() { - if (getOneObjectAtOffset(0, (getImage().getHeight() / 2) + 1, Brick.class) == null && jumpAct < 15) { + if (getOneObjectAtOffset(0, (getImage().getHeight() / 2) + 1, Tile.class) == null && jumpAct < 15) { setLocation(getX() + (speed * direction), getY() + 5); } } private void movement() { - if (movementAct < 0 && getOneObjectAtOffset(0, (getImage().getHeight() / 2) + 1, Brick.class) != null) { + if (movementAct < 0 && getOneObjectAtOffset(0, (getImage().getHeight() / 2) + 1, Tile.class) != null) { jumpAct = 30; movementAct = 60; } diff --git a/Mobs.java b/Mobs.java index b4313ee..7fa1519 100755 --- a/Mobs.java +++ b/Mobs.java @@ -1,3 +1,4 @@ +import greenfoot.GreenfootImage; import greenfoot.World; import java.util.List; @@ -53,10 +54,19 @@ public void collision() { } } - protected void bounceWall() { - if (getOneObjectAtOffset(direction * getImage().getWidth() + 1, 0, Brick.class) != null) { - direction *= -1; + protected int bounceWall(int dir) { + if (getOneObjectAtOffset(dir * getImage().getWidth() + 1, 0, Tile.class) != null) { + dir *= -1; + } + return dir; + } + + protected int bounceWall(int dir, GreenfootImage image) { + if (getOneObjectAtOffset(dir * getImage().getWidth() + 2, 0, Tile.class) != null) { + dir *= -1; + image.mirrorHorizontally(); } + return dir; } protected void idle() { diff --git a/RedSpider.java b/RedSpider.java deleted file mode 100755 index d0ac6a3..0000000 --- a/RedSpider.java +++ /dev/null @@ -1,27 +0,0 @@ -import greenfoot.World; - -import java.util.Objects; - -public class RedSpider extends Spider { - private World w; - - public RedSpider() { - super(); - healPlayer(); - } - - public void addedToWorld(World w) { - this.w = w; - } - - private void healPlayer() { - if (w == null) { - return; - } - Player topL = (Player) getOneObjectAtOffset(-(getImage().getWidth() / 2), getImage().getHeight() / 2, Player.class); - Player topR = (Player) getOneObjectAtOffset(getImage().getWidth() / 2, getImage().getHeight() / 2, Player.class); - if (topL != null || topR != null) { - Objects.requireNonNullElse(topL, topR).changeHP(+1); - } - } -} diff --git a/Spider.java b/Spider.java index b79cf42..b0f5487 100755 --- a/Spider.java +++ b/Spider.java @@ -1,9 +1,11 @@ +import greenfoot.GreenfootImage; import greenfoot.World; public class Spider extends Mobs { private final int hp; private final double speed; private final int dmg; + private final GreenfootImage image; private World w; private int direction = 1; private long startTime; @@ -15,6 +17,9 @@ public Spider() { hp = 2; speed = 1; dmg = 1; + image = new GreenfootImage("spider.png"); + image.scale(47, 64); + setImage(image); } public void addedToWorld(World w) { diff --git a/images/bricks.jpg b/images/bricks.jpg deleted file mode 100755 index 1fe9d93..0000000 Binary files a/images/bricks.jpg and /dev/null differ diff --git a/images/mites.flip.png b/images/mites.flip.png index 1590fc4..05b4e70 100755 Binary files a/images/mites.flip.png and b/images/mites.flip.png differ diff --git a/images/mites.png b/images/mites.png index 6fa59cc..8d16079 100755 Binary files a/images/mites.png and b/images/mites.png differ diff --git a/images/spider.png b/images/spider.png new file mode 100755 index 0000000..65d93bb Binary files /dev/null and b/images/spider.png differ diff --git a/level0.csv b/level0.csv deleted file mode 100755 index 2ef5bfe..0000000 --- a/level0.csv +++ /dev/null @@ -1,5 +0,0 @@ -5,10,1 -5,10,4 -6,9,1 -6,5,3 -5,5,2 \ No newline at end of file diff --git a/levels/0.csv b/levels/0.csv new file mode 100755 index 0000000..d166b27 --- /dev/null +++ b/levels/0.csv @@ -0,0 +1,39 @@ +4,0,1 +4,1,8 +5,10,1 +6,9,1 +7,8,1 +8,7,1 +8,7,1 +9,7,1 +10,8,1 +11,8,1 +12,8,1 +12,7,3 +12,6,3 +12,5,3 +12,1,4 +13,8,1 +14,8,1 +15,8,1 +16,7,1 +17,7,1 +18,7,1 +19,8,1 +20,9,1 +21,9,1 +21,10,1 +25,9,1 +26,9,1 +27,9,1 +27,7,1 +28,7,1 +29,5,1 +30,5,1 +31,5,1 +32,7,1 +33,7,1 +33,9,1 +34,9,1 +35,9,1 +17,9,2 diff --git a/leveltest.csv b/levels/test.csv similarity index 100% rename from leveltest.csv rename to levels/test.csv