Hey Guys,
So I'm currently programming a platformer type of game for a major work at school, and I've been able to program a mediocre jump method, but it's absolutely terrible. Basically what happens is, you press the spacebar and then the players Y location should decrease by a set value, and then the player should drop, however, in my code it's telling the player to stay at that increased Y position until the spacebar has been released. I don't really know how to fix this. My code for my jump method is:
public void jump() { if (Greenfoot.isKeyDown("space")){ setLocation(getX(), getY() - speed*12); Greenfoot.delay(1); fall(); // the hSpeed was just to make the player jump forward or backward when necessary if (Greenfoot.isKeyDown("d")) { setLocation(getX() + hSpeed, getY() - speed*12); Greenfoot.delay(1); fall(); } if (Greenfoot.isKeyDown("a")) { setLocation(getX() - hSpeed, getY() - speed*12); Greenfoot.delay(1); fall(); } if (Greenfoot.isKeyDown("shift")) { if (Greenfoot.isKeyDown("d")) { setLocation(getX() + hSpeed*4, getY() - speed*16); Greenfoot.delay(1); fall(); } if (Greenfoot.isKeyDown("a")) { setLocation(getX() - hSpeed*4, getY() - speed*16); Greenfoot.delay(1); fall(); } } }