diff --git a/Coin.java b/Coin.java index 2f8b261..af442db 100755 --- a/Coin.java +++ b/Coin.java @@ -1,4 +1,3 @@ -import greenfoot.Actor; import greenfoot.GreenfootImage; /** @@ -7,12 +6,12 @@ * @author (your name) * @version (a version number or a date) */ -public class Coin extends Actor { - private GreenfootImage image; +public class Coin extends Collection { + private final GreenfootImage image; - public Coin(){ + public Coin() { image = new GreenfootImage("coin.png"); - image.scale(45,55); + image.scale(45, 55); setImage(image); } @@ -26,8 +25,4 @@ public void act() { Level.addToTotalCoin(); } } - - public boolean isBeingTouched() { - return isTouching(Player.class); - } } diff --git a/Collection.java b/Collection.java old mode 100644 new mode 100755 diff --git a/Crown.java b/Crown.java old mode 100644 new mode 100755 diff --git a/Level.java b/Level.java index 4fb6798..525886b 100755 --- a/Level.java +++ b/Level.java @@ -55,7 +55,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); } diff --git a/Level0.java b/Level0.java index 7bf0969..63b4278 100755 --- a/Level0.java +++ b/Level0.java @@ -23,14 +23,9 @@ public Level0() { addObject(player = new Player(), 100, 622); 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/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 12db9ff..cb64e87 100755 --- a/Mobs.java +++ b/Mobs.java @@ -1,3 +1,4 @@ +import greenfoot.GreenfootImage; import greenfoot.World; import java.util.List; @@ -51,10 +52,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() + 2, 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/Spider.java b/Spider.java index 777bf7c..d83ba94 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/coin.png b/images/coin.png old mode 100644 new mode 100755 diff --git a/images/crown.png b/images/crown.png old mode 100644 new mode 100755 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/levels/0.csv similarity index 94% rename from level0.csv rename to levels/0.csv index 5d1f4c6..17a5704 100755 --- a/level0.csv +++ b/levels/0.csv @@ -11,7 +11,7 @@ 15,9,1 16,8,1 17,8,1 -1,1,4 +12,1,4 2,2,5 3,3,6 4,4,8 diff --git a/leveltest.csv b/levels/test.csv similarity index 100% rename from leveltest.csv rename to levels/test.csv diff --git a/project.greenfoot b/project.greenfoot index 13b4fde..248325e 100755 --- a/project.greenfoot +++ b/project.greenfoot @@ -1,127 +1,114 @@ #Greenfoot project file class.Brick.image=brick.jpg -class.Coin.image=coin.png -class.Crown.image=crown.png -class.MyWorld.image=2dPixelForestBackground\ (1).png +class.Coin.image=marioCoin.png class.Orb.image=ball.png class.Player.image=ppl1.png class.TitleScreen.image=WorldBackground.jpg -dependency1.from=MyWorld -dependency1.to=ImgScroll +dependency1.from=TitleScreen +dependency1.to=SuperDisplayLabel dependency1.type=UsesDependency -dependency10.from=TitleScreen -dependency10.to=Level0 +dependency10.from=Level +dependency10.to=Coin dependency10.type=UsesDependency dependency11.from=Level -dependency11.to=ImgScroll +dependency11.to=Mites dependency11.type=UsesDependency dependency12.from=Level -dependency12.to=Player +dependency12.to=BlueBee dependency12.type=UsesDependency dependency13.from=Level -dependency13.to=Orb +dependency13.to=RedBee dependency13.type=UsesDependency dependency14.from=Level -dependency14.to=SuperDisplayLabel +dependency14.to=GreenBee dependency14.type=UsesDependency dependency15.from=Level -dependency15.to=Brick +dependency15.to=Spider dependency15.type=UsesDependency -dependency16.from=Level -dependency16.to=Coin +dependency16.from=Level0 +dependency16.to=ImgScroll dependency16.type=UsesDependency -dependency17.from=Level -dependency17.to=Level1 +dependency17.from=Level0 +dependency17.to=Player dependency17.type=UsesDependency dependency18.from=Level0 -dependency18.to=ImgScroll +dependency18.to=Orb dependency18.type=UsesDependency -dependency19.from=Level0 -dependency19.to=Player +dependency19.from=Level1 +dependency19.to=ImgScroll dependency19.type=UsesDependency -dependency2.from=MyWorld -dependency2.to=Player +dependency2.from=TitleScreen +dependency2.to=Button dependency2.type=UsesDependency -dependency20.from=Level0 -dependency20.to=Orb +dependency20.from=Level1 +dependency20.to=Player dependency20.type=UsesDependency -dependency21.from=Level0 -dependency21.to=BlueBee +dependency21.from=Level1 +dependency21.to=Orb dependency21.type=UsesDependency -dependency22.from=Level0 -dependency22.to=RedBee +dependency22.from=Player +dependency22.to=Brick dependency22.type=UsesDependency -dependency23.from=Level0 -dependency23.to=Spider +dependency23.from=Mobs +dependency23.to=Player dependency23.type=UsesDependency -dependency24.from=Level1 -dependency24.to=ImgScroll +dependency24.from=Mobs +dependency24.to=Brick dependency24.type=UsesDependency -dependency25.from=Level1 -dependency25.to=Player +dependency25.from=Mobs +dependency25.to=Tile dependency25.type=UsesDependency -dependency26.from=Level1 -dependency26.to=Orb +dependency26.from=Bee +dependency26.to=Level dependency26.type=UsesDependency -dependency27.from=Level1 -dependency27.to=Brick +dependency27.from=RedBee +dependency27.to=Player dependency27.type=UsesDependency -dependency28.from=Player -dependency28.to=Brick +dependency28.from=Mites +dependency28.to=Level dependency28.type=UsesDependency -dependency29.from=Mobs -dependency29.to=Player +dependency29.from=Mites +dependency29.to=Tile dependency29.type=UsesDependency -dependency3.from=MyWorld -dependency3.to=Orb +dependency3.from=TitleScreen +dependency3.to=Level0 dependency3.type=UsesDependency -dependency30.from=Mobs -dependency30.to=Brick +dependency30.from=Spider +dependency30.to=Tile dependency30.type=UsesDependency -dependency31.from=Bee -dependency31.to=Level +dependency31.from=Coin +dependency31.to=Player dependency31.type=UsesDependency -dependency32.from=RedBee -dependency32.to=Player +dependency32.from=Coin +dependency32.to=Level dependency32.type=UsesDependency -dependency33.from=Spider -dependency33.to=Tile +dependency33.from=Orb +dependency33.to=Player dependency33.type=UsesDependency -dependency34.to=Player -dependency34.type=UsesDependency -dependency35.from=Coin -dependency35.to=Player -dependency35.type=UsesDependency -dependency36.from=Coin -dependency36.to=Level -dependency36.type=UsesDependency -dependency37.from=Orb -dependency37.to=Player -dependency37.type=UsesDependency -dependency4.from=MyWorld -dependency4.to=SuperDisplayLabel +dependency4.from=Level +dependency4.to=ImgScroll dependency4.type=UsesDependency -dependency5.from=MyWorld -dependency5.to=Brick +dependency5.from=Level +dependency5.to=Player dependency5.type=UsesDependency -dependency6.from=MyWorld -dependency6.to=Coin +dependency6.from=Level +dependency6.to=SuperDisplayLabel dependency6.type=UsesDependency -dependency7.from=MyWorld -dependency7.to=Level1 +dependency7.from=Level +dependency7.to=Orb dependency7.type=UsesDependency -dependency8.from=TitleScreen -dependency8.to=SuperDisplayLabel +dependency8.from=Level +dependency8.to=Brick dependency8.type=UsesDependency -dependency9.from=TitleScreen -dependency9.to=Button +dependency9.from=Level +dependency9.to=Level1 dependency9.type=UsesDependency editor.fx.0.height=0 editor.fx.0.width=0 editor.fx.0.x=0 editor.fx.0.y=0 height=1040 -package.numDependencies=37 +package.numDependencies=33 package.numTargets=22 project.charset=UTF-8 publish.hasSource=false @@ -145,54 +132,56 @@ target1.width=120 target1.x=0 target1.y=0 target10.height=70 -target10.name=Button +target10.name=Coin target10.showInterface=false target10.type=ClassTarget target10.width=120 target10.x=0 target10.y=0 target11.height=70 +target11.name=Crown target11.showInterface=false target11.type=ClassTarget target11.width=120 target11.x=0 target11.y=0 target12.height=70 -target12.name=Brick +target12.name=Button target12.showInterface=false target12.type=ClassTarget target12.width=120 target12.x=0 target12.y=0 target13.height=70 -target13.name=Mobs +target13.name=Brick target13.showInterface=false -target13.type=AbstractTarget +target13.type=ClassTarget target13.width=120 target13.x=0 target13.y=0 target14.height=70 -target14.name=Spider +target14.name=Mobs target14.showInterface=false -target14.type=ClassTarget +target14.type=AbstractTarget target14.width=120 target14.x=0 target14.y=0 target15.height=70 +target15.name=Spider target15.showInterface=false target15.type=ClassTarget target15.width=120 target15.x=0 target15.y=0 target16.height=70 -target16.name=RedBee +target16.name=Collection target16.showInterface=false target16.type=ClassTarget target16.width=120 target16.x=0 target16.y=0 target17.height=70 -target17.name=Level +target17.name=RedBee target17.showInterface=false target17.type=ClassTarget target17.width=120 @@ -206,7 +195,7 @@ target18.width=120 target18.x=0 target18.y=0 target19.height=70 -target19.name=Level1 +target19.name=Level target19.showInterface=false target19.type=ClassTarget target19.width=120 @@ -220,21 +209,21 @@ target2.width=120 target2.x=0 target2.y=0 target20.height=70 -target20.name=Orb +target20.name=Level1 target20.showInterface=false target20.type=ClassTarget target20.width=120 target20.x=0 target20.y=0 target21.height=70 -target21.name=SuperDisplayLabel +target21.name=Orb target21.showInterface=false target21.type=ClassTarget target21.width=120 target21.x=0 target21.y=0 target22.height=70 -target22.name=MyWorld +target22.name=SuperDisplayLabel target22.showInterface=false target22.type=ClassTarget target22.width=120 @@ -255,35 +244,35 @@ target4.width=130 target4.x=0 target4.y=0 target5.height=70 -target5.name=Tile +target5.name=Mites target5.showInterface=false target5.type=ClassTarget target5.width=120 target5.x=0 target5.y=0 target6.height=70 -target6.name=GreenBee +target6.name=Tile target6.showInterface=false target6.type=ClassTarget target6.width=120 target6.x=0 target6.y=0 target7.height=70 -target7.name=BlueBee +target7.name=GreenBee target7.showInterface=false target7.type=ClassTarget target7.width=120 target7.x=0 target7.y=0 target8.height=70 -target8.name=TitleScreen +target8.name=BlueBee target8.showInterface=false target8.type=ClassTarget target8.width=120 target8.x=0 target8.y=0 target9.height=70 -target9.name=Coin +target9.name=TitleScreen target9.showInterface=false target9.type=ClassTarget target9.width=120