Button disappears when I try to center button. happens when x > 250. I made a stripped down basic ver but still can’t pint point how/why this happens.
Main Game:
package mygame;
import com.jme3.app.SimpleApplication;
import com.jme3.input.MouseInput;
import com.jme3.input.controls.MouseButtonTrigger;
import com.jme3.system.AppSettings;
import mygame.states.GameStartState;
public class Main extends SimpleApplication {
/* entry screen to start */
private GameStartState gameStart;
public static void main(String[] args) {
Main app = new Main();
/* set resolution */
AppSettings settings = new AppSettings(true);
settings.setResolution(1600,800);
app.setSettings(settings);
/* remove settings screen*/
app.setShowSettings(false);
/* kick off*/
app.start();
}
@Override
public void simpleInitApp() {
/* add test button mappings */
inputManager.addMapping("GoLeft"
, new MouseButtonTrigger(MouseInput.BUTTON_LEFT));
inputManager.addMapping("GoRight"
, new MouseButtonTrigger(MouseInput.BUTTON_RIGHT));
/* adjust cam for 2D */
flyCam.setEnabled(false);
cam.setParallelProjection(true);
/* -250 so that the stats show off gamescreen */
cam.setFrustum(1f, 100f, -250, settings.getWidth(), settings.getHeight(), -250);
cam.update();
/* create states */
gameStart = new GameStartState();
stateManager.attach(this.gameStart);
}
}
GameStartState:
package mygame.states;
import com.jme3.app.state.AbstractAppState;
import com.jme3.app.Application;
import com.jme3.app.SimpleApplication;
import com.jme3.app.state.AbstractAppState;
import com.jme3.app.state.AppStateManager;
import com.jme3.asset.AssetManager;
import com.jme3.input.InputManager;
import com.jme3.input.controls.ActionListener;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.shape.Quad;
public class GameStartState extends AbstractAppState {
private Node gameStartNode = new Node("GameStart");
private Geometry background;
private Geometry button;
private GameStartListener inputListener;
/* adopt common objects from main App */
private AssetManager assetManager;
private InputManager inputManager;
private Node rootNode;
@Override
public void initialize(AppStateManager stateManager, Application app) {
super.initialize(stateManager, app);
/* get common objects from main App */
assetManager = app.getAssetManager();
inputManager = app.getInputManager();
rootNode = ((SimpleApplication)app).getRootNode();
/* attach handlers */
inputListener = new GameStartListener();
inputManager.addListener(inputListener, "GoLeft");
inputManager.addListener(inputListener, "GoRight");
/* create spatials */
createBackground();
createButton();
gameStartNode.attachChild(background);
gameStartNode.attachChild(button);
/* attach to root */
rootNode.attachChild(gameStartNode);
}
private void createBackground() {
background = new Geometry("background"
, new Quad(1600, 800));
Material bgMat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
bgMat.setColor("Color", ColorRGBA.White);
background.setMaterial(bgMat);
}
private void createButton() {
button = new Geometry("startbutton"
, new Quad(400, 128));
Material btnMat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
btnMat.setColor("Color", ColorRGBA.Blue);
button.setMaterial(btnMat);
/* center button to background
* result is 600
*/
float btnX = (1600 - 400) / 2;
/* set it too 200 to test
* spatial disappears after 250
*/
button.setLocalTranslation(200, 200, 2);
}
private class GameStartListener implements ActionListener {
/* get button location adjust x and move button */
public void onAction(String name, boolean keyPressed, float tpf) {
if (name.equals("GoLeft") && !keyPressed) {
Vector3f loc = button.getLocalTranslation();
float nX = loc.x - 10;
System.out.println("Moving left " + nX);
button.setLocalTranslation(nX, loc.y, loc.z);
}
if (name.equals("GoRight") && !keyPressed) {
Vector3f loc = button.getLocalTranslation();
float nX = loc.x + 10;
System.out.println("Moving right " + nX);
button.setLocalTranslation(nX, loc.y, loc.z);
}
}
}
}
Anything feedback would be appreciated, thanks.