new layouts & start of main menu
This commit is contained in:
@@ -14,6 +14,7 @@ import mightypork.gamecore.input.Keys;
|
||||
import mightypork.gamecore.render.DisplaySystem;
|
||||
import mightypork.rogue.events.ActionRequest;
|
||||
import mightypork.rogue.events.ActionRequest.RequestType;
|
||||
import mightypork.rogue.screens.main_menu.ScreenMainMenu;
|
||||
import mightypork.rogue.screens.test_bouncyboxes.ScreenTestBouncy;
|
||||
import mightypork.rogue.screens.test_cat_sound.ScreenTestCat;
|
||||
import mightypork.rogue.screens.test_render.ScreenTestRender;
|
||||
@@ -68,7 +69,9 @@ public class App extends BaseApp {
|
||||
screens.add(new ScreenTestCat(this));
|
||||
screens.add(new ScreenTestRender(this));
|
||||
|
||||
screens.showScreen("test.render");
|
||||
screens.add(new ScreenMainMenu(this));
|
||||
|
||||
screens.showScreen("rogue.menu");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@ package mightypork.rogue.screens;
|
||||
|
||||
|
||||
import mightypork.gamecore.gui.Action;
|
||||
import mightypork.gamecore.gui.AlignX;
|
||||
import mightypork.gamecore.gui.components.painters.TextPainter;
|
||||
import mightypork.gamecore.gui.screens.Screen;
|
||||
import mightypork.gamecore.gui.screens.ScreenLayer;
|
||||
import mightypork.gamecore.input.KeyStroke;
|
||||
import mightypork.gamecore.input.Keys;
|
||||
import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
||||
import mightypork.gamecore.render.fonts.GLFont;
|
||||
import mightypork.rogue.Res;
|
||||
import mightypork.utils.math.color.RGB;
|
||||
@@ -40,7 +40,7 @@ public class LayerFps extends ScreenLayer {
|
||||
|
||||
final RectBound constraint = root.topRight().add(-8, 8).expand(0, 0, 0, 32);
|
||||
|
||||
tp = new TextPainter(font, Align.RIGHT, RGB.WHITE, new StringProvider() {
|
||||
tp = new TextPainter(font, AlignX.RIGHT, RGB.WHITE, new StringProvider() {
|
||||
|
||||
@Override
|
||||
public String getString()
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
package mightypork.rogue.screens.main_menu;
|
||||
|
||||
import mightypork.gamecore.gui.AlignX;
|
||||
import mightypork.gamecore.gui.AlignY;
|
||||
import mightypork.gamecore.gui.components.layout.VerticalFixedFlowLayout;
|
||||
import mightypork.gamecore.gui.components.painters.TextPainter;
|
||||
import mightypork.gamecore.gui.screens.Screen;
|
||||
import mightypork.gamecore.gui.screens.ScreenLayer;
|
||||
import mightypork.gamecore.render.fonts.GLFont;
|
||||
import mightypork.rogue.Res;
|
||||
import mightypork.utils.math.color.RGB;
|
||||
import mightypork.utils.math.constraints.num.Num;
|
||||
import mightypork.utils.math.constraints.rect.Rect;
|
||||
|
||||
|
||||
class MenuLayer extends ScreenLayer {
|
||||
|
||||
public MenuLayer(Screen screen) {
|
||||
super(screen);
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
private void init()
|
||||
{
|
||||
Rect menuBox = root.shrink(root.height().min(root.width()).mul(0.1));
|
||||
|
||||
Num lineHeight = menuBox.height().min(menuBox.width()).mul(0.13);
|
||||
|
||||
VerticalFixedFlowLayout layout = new VerticalFixedFlowLayout(root, menuBox, lineHeight, AlignY.TOP);
|
||||
root.add(layout);
|
||||
|
||||
GLFont f = Res.getFont("press_start");
|
||||
layout.add(new TextPainter(f, AlignX.CENTER, RGB.WHITE, "Hello!"));
|
||||
layout.add(new TextPainter(f, AlignX.CENTER, RGB.CYAN, "Woof Woof"));
|
||||
layout.add(new TextPainter(f, AlignX.CENTER, RGB.PURPLE, "MooooOOoOO"));
|
||||
layout.add(new TextPainter(f, AlignX.CENTER, RGB.GREEN, "Bye!"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority()
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package mightypork.rogue.screens.main_menu;
|
||||
|
||||
|
||||
import mightypork.gamecore.control.AppAccess;
|
||||
import mightypork.gamecore.gui.screens.LayeredScreen;
|
||||
|
||||
|
||||
public class ScreenMainMenu extends LayeredScreen {
|
||||
|
||||
public ScreenMainMenu(AppAccess app) {
|
||||
super(app);
|
||||
|
||||
addLayer(new MenuLayer(this));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
return "rogue.menu";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,13 +4,13 @@ package mightypork.rogue.screens.test_bouncyboxes;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import mightypork.gamecore.gui.AlignX;
|
||||
import mightypork.gamecore.gui.components.layout.RowHolder;
|
||||
import mightypork.gamecore.gui.components.painters.TextPainter;
|
||||
import mightypork.gamecore.gui.screens.Screen;
|
||||
import mightypork.gamecore.gui.screens.ScreenLayer;
|
||||
import mightypork.gamecore.input.KeyStroke;
|
||||
import mightypork.gamecore.input.Keys;
|
||||
import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
||||
import mightypork.rogue.Res;
|
||||
import mightypork.utils.math.color.RGB;
|
||||
import mightypork.utils.math.constraints.num.Num;
|
||||
@@ -54,7 +54,7 @@ public class LayerBouncyBoxes extends ScreenLayer {
|
||||
boxes.add(bbr);
|
||||
}
|
||||
|
||||
final TextPainter tp = new TextPainter(Res.getFont("default"), Align.LEFT, RGB.WHITE);
|
||||
final TextPainter tp = new TextPainter(Res.getFont("default"), AlignX.LEFT, RGB.WHITE);
|
||||
tp.setText("Press \"C\" for \"Cat\" screen.");
|
||||
final Num shadowOffset = tp.height().div(16);
|
||||
tp.setShadow(RGB.RED, Vect.make(shadowOffset, shadowOffset));
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.Random;
|
||||
|
||||
import mightypork.gamecore.control.bus.events.MouseButtonEvent;
|
||||
import mightypork.gamecore.control.timing.Updateable;
|
||||
import mightypork.gamecore.gui.AlignX;
|
||||
import mightypork.gamecore.gui.components.painters.ImagePainter;
|
||||
import mightypork.gamecore.gui.components.painters.QuadPainter;
|
||||
import mightypork.gamecore.gui.components.painters.TextPainter;
|
||||
@@ -12,7 +13,6 @@ import mightypork.gamecore.gui.screens.Screen;
|
||||
import mightypork.gamecore.gui.screens.ScreenLayer;
|
||||
import mightypork.gamecore.input.KeyStroke;
|
||||
import mightypork.gamecore.input.Keys;
|
||||
import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
||||
import mightypork.rogue.Res;
|
||||
import mightypork.utils.math.Easing;
|
||||
import mightypork.utils.math.color.RGB;
|
||||
@@ -23,7 +23,7 @@ import mightypork.utils.math.constraints.vect.Vect;
|
||||
import mightypork.utils.math.constraints.vect.mutable.VectAnimated;
|
||||
|
||||
|
||||
public class LayerFlyingCat extends ScreenLayer implements MouseButtonEvent.Listener, Updateable {
|
||||
public class LayerFlyingCat extends ScreenLayer implements MouseButtonEvent.Listener {
|
||||
|
||||
private final NumAnimated size = new NumAnimated(300, Easing.SINE_BOTH);
|
||||
private final VectAnimated cat_position = VectAnimated.makeVar(Easing.ELASTIC_OUT);
|
||||
@@ -44,7 +44,7 @@ public class LayerFlyingCat extends ScreenLayer implements MouseButtonEvent.List
|
||||
cat_position.setDefaultDuration(3);
|
||||
|
||||
ImagePainter cat = new ImagePainter(Res.getTxQuad("test.kitten"));
|
||||
cat.setRect(Rect.make(size, size).centerTo(cat_position));
|
||||
cat.setRect(Rect.make(size).centerTo(cat_position));
|
||||
cat.enableCaching(false);
|
||||
|
||||
// frame around cat
|
||||
@@ -57,6 +57,7 @@ public class LayerFlyingCat extends ScreenLayer implements MouseButtonEvent.List
|
||||
cat_shadow.setRect(cat_frame.move(Vect.make(cat.height().mul(0.05))));
|
||||
cat_shadow.enableCaching(false);
|
||||
|
||||
// add to root layout
|
||||
root.add(cat_shadow);
|
||||
root.add(cat_frame);
|
||||
root.add(cat);
|
||||
@@ -64,13 +65,14 @@ public class LayerFlyingCat extends ScreenLayer implements MouseButtonEvent.List
|
||||
|
||||
// Meow
|
||||
TextPainter tp = new TextPainter(Res.getFont("press_start"));
|
||||
tp.setAlign(Align.CENTER);
|
||||
tp.setAlign(AlignX.CENTER);
|
||||
tp.setColor(RGB.YELLOW);
|
||||
tp.setText("Meow!");
|
||||
tp.setShadow(RGB.dark(0.5), Vect.make(tp.height().div(16)));
|
||||
tp.setRect(Rect.make(Num.ZERO, cat.height().half()).centerTo(mouse));
|
||||
tp.setRect(Rect.make(cat.height().half()).centerTo(mouse));
|
||||
tp.enableCaching(false);
|
||||
root.add(tp);
|
||||
|
||||
/*
|
||||
* Register keys
|
||||
*/
|
||||
@@ -90,7 +92,7 @@ public class LayerFlyingCat extends ScreenLayer implements MouseButtonEvent.List
|
||||
{
|
||||
if (!event.isDown()) return;
|
||||
|
||||
this.cat_position.setTo(event.getPos());
|
||||
cat_position.setTo(event.getPos());
|
||||
|
||||
double newSize = root.height().perc(10 + rand.nextInt(40)).value();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user