I have this code and run ok but when I do click in a button not call to any method … how can I fix it?
[package mygame;
import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.niftygui.NiftyJmeDisplay;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;
import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.builder.EffectBuilder;
import de.lessvoid.nifty.builder.ImageBuilder;
import de.lessvoid.nifty.builder.LayerBuilder;
import de.lessvoid.nifty.builder.PanelBuilder;
import de.lessvoid.nifty.builder.ScreenBuilder;
import de.lessvoid.nifty.controls.button.builder.ButtonBuilder;
import de.lessvoid.nifty.screen.DefaultScreenController;
import de.lessvoid.nifty.screen.Screen;
import de.lessvoid.nifty.screen.ScreenController;
/**
-
test
-
@author normenhansen
*/
public class Main extends SimpleApplication implements ScreenController{public static void main(String[] args) {
Main app = new Main();
app.start();
}
Nifty nifty ;
@Override
public void simpleInitApp() {
setDisplayFps(false);
setDisplayStatView(false);
Box b = new Box(Vector3f.ZERO, 1, 1, 1);
Geometry geom = new Geometry(“Box”, b);Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); mat.setColor("Color", ColorRGBA.Blue); geom.setMaterial(mat); rootNode.attachChild(geom); /**
- Nifty-JME integration
*/
NiftyJmeDisplay niftyDisplay = new NiftyJmeDisplay(
assetManager, inputManager, audioRenderer, guiViewPort);
nifty = niftyDisplay.getNifty();
guiViewPort.addProcessor(niftyDisplay);
flyCam.setDragToRotate(true);
/**
- nifty demo code
*/
nifty.loadStyleFile(“nifty-default-styles.xml”);
nifty.loadControlFile(“nifty-default-controls.xml”);
Intro(nifty);
Menu(nifty);
nifty.gotoScreen(“start”);}
- Nifty-JME integration
private static Screen Intro(final Nifty nifty) {
Screen screen = new ScreenBuilder(“start”) {
{
controller(new DefaultScreenController() {
@Override
public void onStartScreen() {
nifty.gotoScreen("menu");
}
});
// <layer>
layer(new LayerBuilder("Layer_ID") {{
alignCenter();
valignCenter();
childLayoutOverlay();
width("800px");
height("600px");
// <panel>
panel(new PanelBuilder("Panel_ID") {{
alignCenter();
valignCenter();
childLayoutOverlay();
width("256px");
height("256px");
onStartScreenEffect(new EffectBuilder("") {
{
length(250);
startDelay(1300);
inherit();
effectParameter("global", "false");
effectParameter("distance", "10.");
}
});
image(new ImageBuilder() {
{
filename("Interface/jmelogo.png");
onStartScreenEffect(new EffectBuilder("") {
{
length(1000);
startDelay(100);
timeType("exp");
effectParameter("factor", "6.f");
effectParameter("mode", "in");
effectParameter("direction", "right");
}
});
}
});
}});
// </panel>
// <panel>
panel(new PanelBuilder("Panel_ID") {{
alignCenter();
valignCenter();
childLayoutOverlay();
width("256px");
height("256px");
onStartScreenEffect(new EffectBuilder("") {
{
length(250);
startDelay(1300);
inherit();
effectParameter("global", "false");
effectParameter("distance", "10.");
}
});
image(new ImageBuilder() {
{
filename("Interface/blenderlogo.jpg");
onStartScreenEffect(new EffectBuilder("move") {
{
length(1000);
startDelay(1000);
timeType("exp");
effectParameter("factor", "6.f");
effectParameter("mode", "in");
effectParameter("direction", "right");
}
});
}
});
}});
// </panel>
// <panel>
panel(new PanelBuilder("Panel_ID") {{
alignCenter();
valignCenter();
childLayoutOverlay();
width("256px");
height("256px");
onStartScreenEffect(new EffectBuilder("shake") {
{
length(250);
startDelay(1300);
inherit();
effectParameter("global", "false");
effectParameter("distance", "10.");
}
});
onStartScreenEffect(new EffectBuilder("imageSize") {
{
length(600);
startDelay(4000);
effectParameter("startSize", "1.0");
effectParameter("endSize", "3.0");
inherit();
neverStopRendering(true);
}
});
image(new ImageBuilder() {
{
filename("Interface/LOGO.png");
onStartScreenEffect(new EffectBuilder("move") {
{
length(1500);
startDelay(2000);
timeType("exp");
effectParameter("factor", "6.f");
effectParameter("mode", "in");
effectParameter("direction", "right");
}
});
}
});
}});
// </panel>
}});
// </layer>
}
}.build(nifty);
return screen;
}
private static Screen Menu(final Nifty nifty) {
Screen screen = new ScreenBuilder("menu") {
{
controller(new DefaultScreenController() {
// @Override
// public void onStartScreen() {
// nifty.gotoScreen("");
// }
});
// <layer>
layer(new LayerBuilder("layer") {
{
backgroundImage("Interface/Banner2013.png");
childLayoutVertical();
// panel(new PanelBuilder("dialogParent") {
// {
/* paddingLeft("140px");
//paddingRight("25px");
//backgroundColor("#000");
padding("25px");
childLayoutVertical();
width("17%");
height("7%");
alignCenter();
//valignCenter();*/
control (new ButtonBuilder("StartButton", "Iniciar Juego"){{
visibleToMouse(true);
alignCenter();
interactOnClick("iniGame()");
}});
//}
// });
// panel(new PanelBuilder("dialogParent") {
//{
/*paddingLeft("250px");
//paddingRight("25px");
//backgroundColor("#fff");
padding("-7px");
childLayoutVertical();
width("17%");
height("7%");
alignCenter();
//valignCenter();*/
control (new ButtonBuilder("QuitButton", "Salir"){{
visibleToMouse(true);
interactOnClick("quitGame()");
}});
//}
//});
}
});
// </layer>
}
}.build(nifty);
return screen;
}
public void quitGame(){
this.stop();
}
public void iniGame(){
nifty.gotoScreen("");
}
@Override
public void simpleUpdate(float tpf) {
//TODO: add update code
}
@Override
public void simpleRender(RenderManager rm) {
//TODO: add render code
}
public void bind(Nifty nifty, Screen screen) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void onStartScreen() {
throw new UnsupportedOperationException("Not supported yet.");
}
public void onEndScreen() {
throw new UnsupportedOperationException("Not supported yet.");
}
}]