Wir sind zur zeit dabei ein kleines Spiel zu programmieren in Greenfoot. Unser Problem ist, dass unsere Spielfigur durch die Blöcke fällt. Wie beheben wir dieses Problem am besten? Hier der Code für die Spielfigur:

public class Spielfigur extends Actor { private double speed = 0; private int ySpeed; private int apexTimer;

public void act() 
{
     
    int groundLevel = getWorld().getHeight() - getImage().getHeight()/2;
    boolean onGround = (getY() == groundLevel);
    if (!onGround)
    {
        if (ySpeed == 0 && apexTimer > 0) apexTimer--; 
        if (ySpeed == 0 && apexTimer > 0) return; 
        ySpeed++; 
        setLocation(getX(), getY()+ySpeed); 
        if (getY()>=groundLevel) 
        {
            setLocation(getX(), groundLevel); 
            Greenfoot.getKey(); 
       }
    }
    else 
    {
        if ("space".equals(Greenfoot.getKey())) 
        {
            ySpeed = 15; 
            setLocation(getX(), getY()+ySpeed); 
            apexTimer = 15;  
        }
    }

    if(Greenfoot.isKeyDown("d")&& getOneObjectAtOffset(-30,0, Block.class)==null)
    {
        setLocation(getX() +15, getY());
        Greenfoot.delay(0);
    }
    
    if(Greenfoot.isKeyDown("a")&& getOneObjectAtOffset(30,0, Block.class)==null)
    {
        setLocation(getX() -15, getY());
        Greenfoot.delay(0);
    }
    
     if(Greenfoot.isKeyDown(" ")&& getOneObjectAtOffset(0,-30, Block.class)==null)
    {
        setLocation(getX() , getY() -30);
        Greenfoot.delay(0);
    }       
}    
}

Schonmal danke für eine Antwort!:)