I am trying to make my enemy jump with a random height so there are times that it's jump can be too high to low here's my code
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Heartless here.
*
* @author (your name)
* @version (a version number or a date)
*/
/**
* Act - do whatever the Heartless wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public class LastHeartless extends Actor
{
HeartlessBlast heartlessblast = new HeartlessBlast();
private int shotDelay = 0;
private int JumpChance = 0;
private int vspeed = 0;
private int acceleration = 1;
boolean CanJump;
public void act()
{
fall();
fap();
shoot();
randomjump();
}
public void annihilate()
{
Actor K = getOneObjectAtOffset(0,0,K.class);
getWorld().addObject(heartlessblast, getX(), getY());
if(K != null){
World world = getWorld();
NewGameOver newgameover = new NewGameOver();
world.addObject(newgameover, world.getWidth()/2,world.getHeight()/2);
world.removeObject(K);
}
}
public void fap()
{
getWorld().addObject(heartlessblast, getX(), getY());
}
public void shoot()
{
if(shotDelay >= 100)
{
getWorld().addObject(new HeartlessBlast(), getX(), getY());
shotDelay = 0;
}
shotDelay++;
}
public boolean isOnGround()
{
Clone Window = (Clone) getWorld();
if(getY() + (getImage().getHeight() / 2) >= (Window.getHeight() -1)) {
vspeed = 0; return true;
}
return false;
}
public void randomjump()
{
if( isOnGround() && Greenfoot.getRandomNumber(80) ==3)
{
jump();
}
}
public void jump()
{
vspeed += 8+Greenfoot.getRandomNumber(8);
fall();
}
public void fall()
{
setLocation ( getX(), getY() + vspeed);
vspeed = vspeed + acceleration;
}
}
