Wow, the scene2d framework has come a long way since I first looked at it, in some pre-1.0 version of LibGDX. In the last hour since the kids have been in bed, I've got almost half of my game UI mocked out using it, and switching from the draft/mockup to the "real thing" should be as easy as modifying the skin file, and then slightly nudging/resizing things.
I'd show some code here, but it's all so plain simple, I'm not sure what to even say. It's all super simple layout stuff, along the lines of:
private Window buildControlWindow() { float paddingLeft = 120; Window window = new Window("Signal", getSkin()); window.setPosition(0, 0); window.setSize(LifeInSpaceGame.WIDTH, LifeInSpaceGame.HEIGHT / 3); window.setMovable(false); window.setResizable(false); Label label = new Label("Radio Filters", getSkin()); window.add(label).padLeft(paddingLeft).colspan(3).expandX(); window.row(); Button filter1 = new TextButton(" Filter 1 ", getSkin(), "toggle"); window.add(filter1).padLeft(paddingLeft).expandX().padTop(10); window.row(); Button filter2 = new TextButton(" Filter 2 ", getSkin(), "toggle"); window.add(filter2).padLeft(paddingLeft).expandX().padTop(10); window.row(); Button filter3 = new TextButton(" Filter 3 ", getSkin(), "toggle"); window.add(filter3).padLeft(paddingLeft).expandX().padTop(10); window.row(); return window; }
This builds the panel in the bottom right that lets you apply different "radio filters" to the radio signal audio that's coming in from the selected star, to help you try to pick out whether there are any signs of intelligent life coming from that star.
The next task is going to be the first somewhat challenging one: to have a cool waveform image scrolling by on the bottom left side of the screen to match the radio sounds that you hear when you tap on a star. I have some ideas about how to make it work really easily, but it might take a little finagling.
And here we have some much needed instructions. I'll flesh out the text later.