diff --git a/SMIMS-Game/GameOverWorld.class b/SMIMS-Game/GameOverWorld.class new file mode 100644 index 0000000..64be4d7 Binary files /dev/null and b/SMIMS-Game/GameOverWorld.class differ diff --git a/SMIMS-Game/GameOverWorld.ctxt b/SMIMS-Game/GameOverWorld.ctxt new file mode 100644 index 0000000..e10a681 --- /dev/null +++ b/SMIMS-Game/GameOverWorld.ctxt @@ -0,0 +1,7 @@ +#BlueJ class context +comment0.target=GameOverWorld +comment0.text=\r\n\ Write\ a\ description\ of\ class\ GameOverWorld\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n +comment1.params= +comment1.target=GameOverWorld() +comment1.text=\r\n\ Constructor\ for\ objects\ of\ class\ GameOverWorld.\r\n\ \r\n +numComments=2 diff --git a/SMIMS-Game/GameOverWorld.java b/SMIMS-Game/GameOverWorld.java new file mode 100644 index 0000000..8c4621c --- /dev/null +++ b/SMIMS-Game/GameOverWorld.java @@ -0,0 +1,21 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class GameOverWorld here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class GameOverWorld extends World +{ + + /** + * Constructor for objects of class GameOverWorld. + * + */ + public GameOverWorld() + { + // Create a new world with 600x400 cells with a cell size of 1x1 pixels. + super(400, 600, 1); + } +} diff --git a/SMIMS-Game/MyWorld.class b/SMIMS-Game/MyWorld.class index c9c4726..26919f8 100644 Binary files a/SMIMS-Game/MyWorld.class and b/SMIMS-Game/MyWorld.class differ diff --git a/SMIMS-Game/MyWorld.ctxt b/SMIMS-Game/MyWorld.ctxt index 25b6c20..a71706b 100644 --- a/SMIMS-Game/MyWorld.ctxt +++ b/SMIMS-Game/MyWorld.ctxt @@ -7,4 +7,6 @@ comment1.text=\r\n\ Constructor\ for\ objects\ of\ class\ MyWorld.\r\n\ \r\n comment2.params= comment2.target=void\ prepare() comment2.text=\r\n\ Prepare\ the\ world\ for\ the\ start\ of\ the\ program.\r\n\ That\ is\:\ create\ the\ initial\ objects\ and\ add\ them\ to\ the\ world.\r\n -numComments=3 +comment3.params= +comment3.target=void\ act() +numComments=4 diff --git a/SMIMS-Game/MyWorld.java b/SMIMS-Game/MyWorld.java index b18d2c8..d3d6587 100644 --- a/SMIMS-Game/MyWorld.java +++ b/SMIMS-Game/MyWorld.java @@ -8,7 +8,8 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) */ public class MyWorld extends World { - + int timer = 200; + /** * Constructor for objects of class MyWorld. * @@ -28,4 +29,15 @@ public class MyWorld extends World Player player = new Player(); addObject(player,302,320); } + + public void act(){ + if(timer > 0){ + timer = timer - 1; + } + else{ + Projectile projectile = new Projectile(); + addObject(projectile,Greenfoot.getRandomNumber(300)+50,0); + timer = 200; + } + } } diff --git a/SMIMS-Game/Player.class b/SMIMS-Game/Player.class index 53822cc..5eff4bf 100644 Binary files a/SMIMS-Game/Player.class and b/SMIMS-Game/Player.class differ diff --git a/SMIMS-Game/Player.ctxt b/SMIMS-Game/Player.ctxt index c19adf5..42846c0 100644 --- a/SMIMS-Game/Player.ctxt +++ b/SMIMS-Game/Player.ctxt @@ -7,4 +7,6 @@ comment2.params= comment2.target=void\ player_movement() comment3.params= comment3.target=boolean\ onGround() -numComments=4 +comment4.params= +comment4.target=boolean\ collision() +numComments=5 diff --git a/SMIMS-Game/Player.java b/SMIMS-Game/Player.java index f3a9eaf..9cc126d 100644 --- a/SMIMS-Game/Player.java +++ b/SMIMS-Game/Player.java @@ -13,6 +13,7 @@ public class Player extends Actor public void act() { player_movement(); + collision(); } public void player_movement(){ @@ -35,4 +36,16 @@ public class Player extends Actor return floor != null; } + + public boolean collision(){ + if (getIntersectingObjects(Projectile.class).size()>0) + { + Greenfoot.setWorld(new GameOverWorld()); + return true; + } + else + { + return false; + } + } } diff --git a/SMIMS-Game/Projectile.class b/SMIMS-Game/Projectile.class new file mode 100644 index 0000000..b45c87f Binary files /dev/null and b/SMIMS-Game/Projectile.class differ diff --git a/SMIMS-Game/Projectile.ctxt b/SMIMS-Game/Projectile.ctxt new file mode 100644 index 0000000..8e3638e --- /dev/null +++ b/SMIMS-Game/Projectile.ctxt @@ -0,0 +1,9 @@ +#BlueJ class context +comment0.target=Projectile +comment0.text=\r\n\ Write\ a\ description\ of\ class\ Projectile\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n +comment1.params= +comment1.target=void\ act() +comment1.text=\r\n\ Act\ -\ do\ whatever\ the\ Projectile\ wants\ to\ do.\ This\ method\ is\ called\ whenever\r\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\r\n +comment2.params= +comment2.target=void\ falling() +numComments=3 diff --git a/SMIMS-Game/Projectile.java b/SMIMS-Game/Projectile.java new file mode 100644 index 0000000..f3bedb3 --- /dev/null +++ b/SMIMS-Game/Projectile.java @@ -0,0 +1,26 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Projectile here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Projectile extends Actor +{ + /** + * Act - do whatever the Projectile wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + falling(); + } + + public void falling(){ + setLocation(getX(), getY() + 5); + if(getY() > getWorld().getHeight() -5){ + getWorld().removeObject(this); + } + } +} diff --git a/SMIMS-Game/images/Projectile1.jpeg b/SMIMS-Game/images/Projectile1.jpeg new file mode 100644 index 0000000..1875f86 Binary files /dev/null and b/SMIMS-Game/images/Projectile1.jpeg differ diff --git a/SMIMS-Game/images/Projectile1.png b/SMIMS-Game/images/Projectile1.png new file mode 100644 index 0000000..20705b7 Binary files /dev/null and b/SMIMS-Game/images/Projectile1.png differ diff --git a/SMIMS-Game/images/bluerock.jpg b/SMIMS-Game/images/bluerock.jpg new file mode 100644 index 0000000..24e88ce Binary files /dev/null and b/SMIMS-Game/images/bluerock.jpg differ diff --git a/SMIMS-Game/project.greenfoot b/SMIMS-Game/project.greenfoot index 73e93c0..8fdd0cd 100644 --- a/SMIMS-Game/project.greenfoot +++ b/SMIMS-Game/project.greenfoot @@ -1,19 +1,27 @@ #Greenfoot project file +class.GameOverWorld.image=bluerock.jpg class.Ground.image=weave.jpg class.Player.image=ppl2.png +class.Projectile.image=Projectile1.png dependency1.from=MyWorld dependency1.to=Player dependency1.type=UsesDependency -dependency2.from=Player -dependency2.to=Ground +dependency2.from=MyWorld +dependency2.to=Projectile dependency2.type=UsesDependency -editor.fx.0.height=0 -editor.fx.0.width=0 -editor.fx.0.x=0 -editor.fx.0.y=0 +dependency3.from=Player +dependency3.to=Ground +dependency3.type=UsesDependency +dependency4.from=Player +dependency4.to=Projectile +dependency4.type=UsesDependency +editor.fx.0.height=737 +editor.fx.0.width=814 +editor.fx.0.x=360 +editor.fx.0.y=26 height=736 -package.numDependencies=2 -package.numTargets=3 +package.numDependencies=4 +package.numTargets=5 project.charset=UTF-8 publish.hasSource=false publish.locked=true @@ -43,12 +51,26 @@ target2.width=120 target2.x=0 target2.y=0 target3.height=70 -target3.name=MyWorld +target3.name=GameOverWorld target3.showInterface=false target3.type=ClassTarget target3.width=120 target3.x=0 target3.y=0 +target4.height=70 +target4.name=MyWorld +target4.showInterface=false +target4.type=ClassTarget +target4.width=120 +target4.x=0 +target4.y=0 +target5.height=70 +target5.name=Projectile +target5.showInterface=false +target5.type=ClassTarget +target5.width=120 +target5.x=0 +target5.y=0 version=3.1.0 width=856 world.lastInstantiated=MyWorld