You can try putting code into the started() function for the world class instead of the constructor and use a boolean variable to prevent it from loading again on pause/resume. Like so:
This fixed a bug I found in my own code earlier where the game would not load when I called Greenfoot.setSpeed() in the constructor, but this method let's me do basically the same thing.
boolean initialize; //will be false by default
public yourWorld(){
super(640,400, 1, false);
}
public void started(){
if(initialize == false){
loadStartupCode();
initialize = true;
}
}

