This is the same game, but I created the second version of it.
the code below is in the player code.
the code below is my mover code
I'll post the link to my code on here.heres the scenario
public class player extends Mover { private int vSpeed = 0; private int jumpStrength= 26; private static final int acceleration = 2; /** * Act - do whatever the player wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { checkKeys(); gameOver(); checkFall(); win(); } private void checkKeys() { if (Greenfoot.isKeyDown("right")) { move(10); } if (Greenfoot.isKeyDown("left")) { move(-10); } if (Greenfoot.isKeyDown("space")) { if (onGround()||onGround2()||onGround3()||onGround4()||onGround5() ||onGround6()) { jump(); } } } public void setVSpeed(int speed) { vSpeed = speed; } public void fall() { setLocation(getX(), getY() +vSpeed); vSpeed=vSpeed+acceleration; } public void gameOver() { if ( isTouching(Blackline.class) ) { setLocation(40, 530); } } public void jump() { setVSpeed(-jumpStrength); fall(); } public void checkFall() { if (onGround()||onGround2()||onGround3()||onGround4()||onGround5() ||onGround6()) { vSpeed = 0; } else{ fall(); } } public void win() { if (isTouching(Finish.class)) { setLocation(40, 530); Greenfoot.playSound("fanfare.wav"); Greenfoot.stop(); } } }
public class Mover extends Actor { private int vSpeed = 0; private static final int speed = 10; public void moveRight() { setLocation (getX() - speed, getY()); } public void moveLeft() { setLocation (getX() + speed, getY()); } public boolean onGround() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8,Start.class); return under !=null; } public boolean onGround2() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } public boolean onGround3() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } public boolean onGround4() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } public boolean onGround5() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } public boolean onGround6() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } public boolean onGround7() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } public boolean onGround8() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } public boolean onGround9() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } public boolean onGround10() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } public boolean onGround11() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } public boolean onGround12() { Object under = getOneObjectAtOffset(0,getImage() .getHeight()/2-8, Safezone.class); return under !=null; } }