Skip to content

Simple GUI Scene(deprecated)

Radomiej edited this page Nov 24, 2016 · 1 revision

In this example is show GUI scene:

public class SceneLoginBulider implements SceneBulider {
	@Override
	public Scene getScene() {
		Scene scene = new CustomScene();

		JGameObject canvas = scene.instantiateGameObject(new Vector2(0, 0));
		JCanvas jCanvas = new JCanvas();
		jCanvas.setSkinPath("internal/ui/uiskin.json");
		canvas.addComponent(jCanvas);

		JGameObject labelInfo = scene.instantiateGameObject(new Vector2(175, 450));
		JLabel jLabel = new JLabel();
		jLabel.setText("Login");
		labelInfo.addComponent(jLabel);

		JGameObject labelNick = scene.instantiateGameObject(new Vector2(100, 350));
		jLabel = new JLabel();
		jLabel.setText("Nick/email:");
		labelNick.addComponent(jLabel);

		JGameObject labelPassword = scene.instantiateGameObject(new Vector2(100, 300));
		jLabel = new JLabel();
		jLabel.setText("Password:");
		labelPassword.addComponent(jLabel);

		JGameObject buttonLogin = scene.instantiateGameObject(new Vector2(300, 200));
		buttonLogin.getTransform().setParent(canvas);
		JTextButton jButton = new JTextButton();
		jButton.setClickTarget(buttonLogin);
		jButton.clickInvoke = new RemoteInvoker(JTextButton.class, "setText", "Logging...");
		jButton.useSkin = true;
		jButton.text = "Login";
		buttonLogin.addComponent(jButton);

		JGameObject buttonBack = scene.instantiateGameObject(new Vector2(200, 200));
		buttonBack.getTransform().setParent(canvas);
		jButton = new JTextButton();
		jButton.setClickTarget(buttonLogin);
		jButton.clickInvoke = new RemoteInvoker(JTextButton.class, "setText", "Backing...");
		jButton.useSkin = true;
		jButton.text = "Back";
		buttonBack.addComponent(jButton);

		JGameObject textFieldNick = scene.instantiateGameObject(new Vector2(270, 350));
		textFieldNick.getTransform().setParent(canvas);
		JTextField jTextField = new JTextField();
		jTextField.fontColor = Color.BLUE;
		textFieldNick.addComponent(jTextField);

		JGameObject textFieldPassword = scene.instantiateGameObject(new Vector2(270, 300));
		textFieldPassword.getTransform().setParent(canvas);
		jTextField = new JTextField();
		jTextField.fontColor = Color.BLUE;
		textFieldPassword.addComponent(jTextField);

		return scene;
	}
}

In first you must create GameObject with Canvas component, and set skin path:

JGameObject canvas = scene.instantiateGameObject(new Vector2(0, 0));
JCanvas jCanvas = new JCanvas();
jCanvas.setSkinPath("internal/ui/uiskin.json");
canvas.addComponent(jCanvas);

On them you can put diffrent GUI object like buttons, labels etc.

Label:

JGameObject labelInfo = scene.instantiateGameObject(new Vector2(175, 450));
JLabel jLabel = new JLabel();
jLabel.setText("Login");
labelInfo.addComponent(jLabel);

TextButton:

JGameObject buttonLogin = scene.instantiateGameObject(new Vector2(300, 200));
buttonLogin.getTransform().setParent(canvas);
JTextButton jButton = new JTextButton();
jButton.setClickTarget(buttonLogin);
jButton.clickInvoke = new RemoteInvoker(JTextButton.class, "setText", "Logging...");
jButton.useSkin = true;
jButton.text = "Login";
buttonLogin.addComponent(jButton);

TextField:

JGameObject textFieldNick = scene.instantiateGameObject(new Vector2(270, 350));
textFieldNick.getTransform().setParent(canvas);
JTextField jTextField = new JTextField();
jTextField.fontColor = Color.BLUE;
textFieldNick.addComponent(jTextField);

Clone this wiki locally