This site requires JavaScript, please enable it in your browser!
Greenfoot back
EddiMitY
EddiMitY wrote ...

2020/12/6

getOneObbjectAtOffset Error massage

EddiMitY EddiMitY

2020/12/6

#
Hello, i need help with the Error massage. I cant fix this. This code is in a inputmanager witch have to move Player1, but it does not work. how can i give this actor more access? is this possible? Error Massage(getOneObbjectAtOffset(int,int,java.langg.Class<?>) has protected access in greenfoot.Actor)
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)

/**
 * Ergänzen Sie hier eine Beschreibung für die Klasse InputManager.
 * 
 * @author (Eddy Kloth) 
 * @version (06.12.2020)
 */
public class  InputManager extends Actor
{
    private int vSpeed = 0;
    private int mSpeed = 6;
    private int acceleration = 2;
    private int jumpHeight = 30; 
    
    /**
     * act
     */
    public void act() 
    {
        checkKeysP1();
        checkFallP1();
    }
    
    public void checkKeysP1() 
    {
        Player1 Playereins= getWorld().getObjects(Player1.class).get(0);
        if (Greenfoot.isKeyDown("A")) 
        {
            Playereins.setLocation(Playereins.getX()-mSpeed, Playereins.getY());
            Playereins.setRotation(180);
        }
        else if (Greenfoot.isKeyDown("D")) 
        {
            Playereins.setLocation(Playereins.getX()+mSpeed, Playereins.getY());
            Playereins.setRotation(360);
        }
        else if (Greenfoot.isKeyDown("S")) 
        {
            fallP1();
        }
        if (Greenfoot.isKeyDown("W"))
        {
            if(onGroundP1())
            {
                jumpP1();
            }
            if(getY()>(getWorld().getHeight()-10))
            {
                jumpP1(); //wenn es keinen boden gibt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            }
        }

    }

    public void checkFallP1()
    {
        if(onGroundP1())
        {
        }
        else{ 
            fallP1();
        }     
    }

    public boolean onGroundP1()
    {
        Player1 Playereins= getWorld().getObjects(Player1.class).get(0);
        Actor unter = Playereins.getOneObjectAtOffset( 0, 30, Platform.class );
        return unter != null;
    }

    public void jumpP1()
    {
        vSpeed = -jumpHeight;
        fallP1();
    }

    public void fallP1()
    {
        Player1 Playereins= getWorld().getObjects(Player1.class).get(0);
        Playereins.setLocation( Playereins.getX(), Playereins.getY() + vSpeed);
        vSpeed = vSpeed + acceleration;
    }

}
danpost danpost

2020/12/6

#
No collision checking methods can be performed on an actor outside of the class(es) of that actor.
You need to login to post a reply.