I am working on a dialoguebox with a working "next" button that changes the line of text being shown, everytime it's clicked. In the "Nextbutton" class, i have managed to make a variable where if you click the next button, a counter goes up. The problem arises when i try to bring that variable from my 'Nextbutton' class over to 'Dialoguebox' class. I already made a string containing the script. When i try to start the game it gave me a "java.lang.NullPointerException", so i did some experimenting the world class but i can't wrap my head around it, can someone please help me?
code Nextbutton:
code Dialoguebox:
code world:
public class Nextbutton extends Scriptje
{
public boolean mouseDown;
public int currentline;
private GreenfootImage image;
public boolean lineChanged = false;
/**
* Act - do whatever the Nextbutton wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public Nextbutton()
{
mouseDown = false;
verkleinButton();
image = getImage();
}
public void act()
{
if (!mouseDown && Greenfoot.mouseClicked(this))
{
currentline++;
getWorld().showText("currentline: " + currentline, 200, 100); //verwijder dit zodra dat het script werkt
lineChanged = true;
}
}
private void verkleinButton()
{
GreenfootImage img = new GreenfootImage("nextbutton.png");
img.scale(img.getWidth()/10, img.getHeight()/10);
setImage(img);
}
}
public class Dialoogbox extends Scriptje
{
public String[] lines={"line 1", "line 2", "line 3?", "line 4"};
private int followscript;
public boolean scriptChanged = false;
/**
* Act - do whatever the Dialoogbox wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
// dialoogbox (klasse van knopje)
public Dialoogbox()
{
followscript = getWorld().getObjects(Nextbutton.class).get(0).currentline;
scriptChanged = getWorld().getObjects(Nextbutton.class).get(0).lineChanged;
}
public void script(){
if (!scriptChanged)
{
GreenfootImage image = new GreenfootImage(lines[followscript], 24, Color.BLACK, new Color(255,255,255));
}
}
public void act()
{
}
}public MyWorld()
{
super(600, 400, 1);
prepare();
setPaintOrder(Nextbutton.class, Dialoogbox.class, Verkoper.class, Klant.class);
setBackground("wereldkaart.jpg");
toonTekst("Kies het continent dat je wilt bezoeken:", getWidth() / 2, getHeight() / 4);
Nextbutton knopje = new Nextbutton();
Dialoogbox boxje = new Dialoogbox(knopje);
}
