Hello
I got button in my GUI .xml code which should call quit() method from MenuState class but when i press that button nothing happen.
Here’s GUI.xml code:
[java]<?xml version=“1.0” encoding=“UTF-8”?>
<nifty>
<useStyles filename=“nifty-default-styles.xml” />
<useControls filename=“nifty-default-controls.xml” />
<screen id=“start” controller=“MenuState”>
<layer id=“bgLayer” backgroundImage=“Textures/GFX/Interface/menuElements/bg.jpg” childLayout=“center”>
<panel id=“logoPanel” height=“536” width=“728” backgroundImage=“Textures/GFX/Interface/menuElements/tlt.png” childLayout=“center” visibleToMouse=“true”>
</panel>
<control name=“button” label=“Start” id=“StartButton” align=“center” valign=“center” visibleToMouse=“true”>
<interact onClick=“quit()”/>
</control>
</layer>
</screen>
<screen id=“end” controller=“MenuState”>
</screen>
</nifty>
[/java]
And my MenuState.java class:
[java]public class MenuState extends AbstractAppState implements ScreenController{
private AssetManager assetManager;
private Nifty nifty;
private Screen screen;
private InputManager inputManager;
private AudioRenderer audioRenderer;
private ViewPort guiViewPort;
private final Node rootNode;
private final ViewPort viewPort;
private final Node guiNode;
private NiftyJmeDisplay niftyDisplay;
private Game game;
public MenuState(SimpleApplication sapp){
this.rootNode = sapp.getRootNode();
this.viewPort = sapp.getViewPort();
this.guiNode = sapp.getGuiNode();
}
@Override
public void initialize(AppStateManager stateManager, Application app) {
super.initialize(stateManager, app);
assetManager = app.getAssetManager();
inputManager = app.getInputManager();
audioRenderer = app.getAudioRenderer();
guiViewPort = app.getGuiViewPort();
niftyDisplay = new NiftyJmeDisplay(assetManager, inputManager, audioRenderer, guiViewPort);
nifty = niftyDisplay.getNifty();
nifty.fromXml(“Interface/GUI.xml”, “start”, this);
guiViewPort.addProcessor(niftyDisplay);
inputManager.setCursorVisible(true);
}
@Override
public void update(float tpf) {
/** the action happens here */
}
public void quit() {
game = new Game();
game.detachMenu();
game.attachGame();
}
@Override
public void stateAttached(AppStateManager stateManager) {
}
@Override
public void stateDetached(AppStateManager stateManager) {
}
public void bind(Nifty nifty, Screen screen) {
this.nifty = nifty;
this.screen = screen;
nifty.registerScreenController(this);
nifty.addControls();
}
public void onStartScreen() {
}
public void onEndScreen() {
}
}[/java]
There’s also a warning in console: