Tweaks to constraint and screen system
This commit is contained in:
@@ -18,6 +18,6 @@ public class Const {
|
||||
public static final int FPS_RENDER = 100; // max
|
||||
|
||||
// INITIAL WINDOW SIZE
|
||||
public static final int WINDOW_W = 1024;
|
||||
public static final int WINDOW_H = 768;
|
||||
public static final int WINDOW_W = 800;
|
||||
public static final int WINDOW_H = 600;
|
||||
}
|
||||
|
||||
@@ -10,10 +10,10 @@ import mightypork.gamecore.render.fonts.DeferredFont;
|
||||
import mightypork.gamecore.render.fonts.DeferredFont.FontStyle;
|
||||
import mightypork.gamecore.render.fonts.FontBank;
|
||||
import mightypork.gamecore.render.fonts.GLFont;
|
||||
import mightypork.gamecore.render.textures.FilteredTexture.Filter;
|
||||
import mightypork.gamecore.render.textures.FilteredTexture.Wrap;
|
||||
import mightypork.gamecore.render.textures.FilterMode;
|
||||
import mightypork.gamecore.render.textures.TextureBank;
|
||||
import mightypork.gamecore.render.textures.TxQuad;
|
||||
import mightypork.gamecore.render.textures.WrapMode;
|
||||
|
||||
import org.newdawn.slick.opengl.Texture;
|
||||
|
||||
@@ -56,13 +56,23 @@ public class Res {
|
||||
|
||||
private static void loadFonts()
|
||||
{
|
||||
fonts.loadFont("default", new DeferredFont("/res/font/PolygonPixel5x7Standard.ttf", null, 32, FontStyle.PLAIN, true));
|
||||
//@formatter:off
|
||||
fonts.loadFont(
|
||||
"default",
|
||||
new DeferredFont("/res/font/PolygonPixel5x7Standard.ttf",
|
||||
null,
|
||||
16,
|
||||
FontStyle.PLAIN,
|
||||
FilterMode.NEAREST
|
||||
)
|
||||
);
|
||||
//@formatter:on
|
||||
}
|
||||
|
||||
|
||||
private static void loadTextures()
|
||||
{
|
||||
textures.loadTexture("test.kitten", "/res/img/kitten.png", Filter.LINEAR, Filter.NEAREST, Wrap.CLAMP);
|
||||
textures.loadTexture("test.kitten", "/res/img/kitten.png", FilterMode.LINEAR, FilterMode.NEAREST, WrapMode.CLAMP);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package mightypork.rogue.screens;
|
||||
|
||||
|
||||
import mightypork.gamecore.gui.renderers.TextPainter;
|
||||
import mightypork.gamecore.gui.screens.Screen;
|
||||
import mightypork.gamecore.gui.screens.ScreenLayer;
|
||||
import mightypork.gamecore.render.DisplaySystem;
|
||||
import mightypork.gamecore.render.fonts.FontRenderer;
|
||||
import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
||||
import mightypork.rogue.Res;
|
||||
import mightypork.utils.math.color.RGB;
|
||||
import mightypork.utils.math.coord.Coord;
|
||||
|
||||
|
||||
public class LayerFps extends ScreenLayer {
|
||||
|
||||
TextPainter tp;
|
||||
private FontRenderer fr;
|
||||
|
||||
|
||||
public LayerFps(Screen screen) {
|
||||
super(screen);
|
||||
|
||||
fr = new FontRenderer(Res.getFont("default"), RGB.WHITE);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void render()
|
||||
{
|
||||
Coord pos = new Coord(DisplaySystem.getWidth() - 8, 8);
|
||||
fr.draw(getDisplay().getFps() + " fps", pos, 32, Align.RIGHT);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getPriority()
|
||||
{
|
||||
return Integer.MAX_VALUE;
|
||||
}
|
||||
}
|
||||
@@ -31,11 +31,11 @@ public class BouncyBox extends PluggableRenderer implements Updateable {
|
||||
|
||||
// move
|
||||
final NumberConstraint move_length = c_sub(c_width(this), side);
|
||||
final NumberConstraint offset = c_mul(move_length, c_n(pos));
|
||||
abox = c_move(abox, offset, c_n(0));
|
||||
final NumberConstraint offset = c_mul(move_length, pos);
|
||||
abox = c_move(abox, offset, 0);
|
||||
|
||||
// add padding
|
||||
abox = c_shrink(abox, c_percent(side, c_n(10)));
|
||||
abox = c_shrink(abox, c_percent(side, 10));
|
||||
|
||||
box = abox;
|
||||
}
|
||||
|
||||
@@ -7,15 +7,16 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import mightypork.gamecore.gui.renderers.RowHolder;
|
||||
import mightypork.gamecore.gui.renderers.TextRenderer;
|
||||
import mightypork.gamecore.gui.renderers.TextRenderer.Align;
|
||||
import mightypork.gamecore.gui.renderers.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.RectConstraint;
|
||||
import mightypork.utils.string.StringProvider;
|
||||
|
||||
|
||||
public class LayerBouncyBoxes extends ScreenLayer {
|
||||
@@ -46,24 +47,26 @@ public class LayerBouncyBoxes extends ScreenLayer {
|
||||
});
|
||||
|
||||
// shrink screen rect by 8% on all sides
|
||||
final RectConstraint holder_rect = c_shrink(this, c_percent(c_height(this), c_n(8)));
|
||||
final RectConstraint holder_rect = c_shrink(this, c_percent(c_height(this), 4));
|
||||
|
||||
addChildClient(layout = new RowHolder(screen, holder_rect, 8));
|
||||
addChildClient(layout = new RowHolder(screen, holder_rect, 11));
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
for (int i = 0; i <= 9; i++) {
|
||||
final BouncyBox bbr = new BouncyBox();
|
||||
layout.add(bbr);
|
||||
boxes.add(bbr);
|
||||
}
|
||||
|
||||
layout.add(new TextRenderer(Res.getFont("default"), RGB.WHITE, Align.LEFT) {
|
||||
StringProvider sp = new StringProvider() {
|
||||
|
||||
@Override
|
||||
public String getText()
|
||||
public String getString()
|
||||
{
|
||||
return "Running at " + getDisplay().getFps() + " fps!";
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
layout.add(new TextPainter(Res.getFont("default"), Align.LEFT, RGB.WHITE, sp));
|
||||
}
|
||||
|
||||
|
||||
@@ -88,5 +91,11 @@ public class LayerBouncyBoxes extends ScreenLayer {
|
||||
bbr.goRight();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getPriority()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import mightypork.gamecore.control.bus.events.ScreenRequestEvent;
|
||||
import mightypork.gamecore.gui.screens.LayeredScreen;
|
||||
import mightypork.gamecore.input.KeyStroke;
|
||||
import mightypork.gamecore.input.Keys;
|
||||
import mightypork.rogue.screens.LayerFps;
|
||||
|
||||
|
||||
public class ScreenTestBouncy extends LayeredScreen {
|
||||
@@ -17,8 +18,10 @@ public class ScreenTestBouncy extends LayeredScreen {
|
||||
super(app);
|
||||
|
||||
layer = new LayerBouncyBoxes(this);
|
||||
|
||||
addLayer(layer);
|
||||
|
||||
addLayer(new LayerFps(this));
|
||||
|
||||
addLayer(layer);
|
||||
|
||||
bindKeyStroke(new KeyStroke(Keys.KEY_C), new Runnable() {
|
||||
|
||||
|
||||
@@ -7,21 +7,23 @@ import java.util.Random;
|
||||
|
||||
import mightypork.gamecore.control.bus.events.MouseButtonEvent;
|
||||
import mightypork.gamecore.control.interf.Updateable;
|
||||
import mightypork.gamecore.gui.renderers.ImageRenderer;
|
||||
import mightypork.gamecore.gui.renderers.TextRenderer;
|
||||
import mightypork.gamecore.gui.renderers.TextRenderer.Align;
|
||||
import mightypork.gamecore.gui.renderers.ImagePainter;
|
||||
import mightypork.gamecore.gui.renderers.TextPainter;
|
||||
import mightypork.gamecore.gui.screens.Screen;
|
||||
import mightypork.gamecore.gui.screens.ScreenLayer;
|
||||
import mightypork.gamecore.input.InputSystem;
|
||||
import mightypork.gamecore.input.KeyStroke;
|
||||
import mightypork.gamecore.input.Keys;
|
||||
import mightypork.gamecore.render.DisplaySystem;
|
||||
import mightypork.gamecore.render.fonts.FontRenderer;
|
||||
import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
||||
import mightypork.rogue.Res;
|
||||
import mightypork.utils.math.animation.AnimDouble;
|
||||
import mightypork.utils.math.animation.Easing;
|
||||
import mightypork.utils.math.color.RGB;
|
||||
import mightypork.utils.math.constraints.RectConstraint;
|
||||
import mightypork.utils.math.coord.Coord;
|
||||
import mightypork.utils.string.StringProvider;
|
||||
|
||||
|
||||
public class LayerFlyingCat extends ScreenLayer implements Updateable, MouseButtonEvent.Listener {
|
||||
@@ -32,8 +34,8 @@ public class LayerFlyingCat extends ScreenLayer implements Updateable, MouseButt
|
||||
|
||||
private final Random rand = new Random();
|
||||
|
||||
private final ImageRenderer cat;
|
||||
private final TextRenderer text;
|
||||
private final ImagePainter cat;
|
||||
private final TextPainter text;
|
||||
|
||||
|
||||
public LayerFlyingCat(Screen screen) {
|
||||
@@ -42,19 +44,23 @@ public class LayerFlyingCat extends ScreenLayer implements Updateable, MouseButt
|
||||
xPos.setTo(DisplaySystem.getWidth() / 2);
|
||||
yPos.setTo(DisplaySystem.getHeight() / 2);
|
||||
|
||||
cat = new ImageRenderer(Res.getTxQuad("test.kitten"));
|
||||
cat.setContext(c_centered(c_box(this, c_n(size), c_n(size)), c_n(xPos), c_n(yPos)));
|
||||
cat = new ImagePainter(Res.getTxQuad("test.kitten"));
|
||||
cat.setContext(c_centered(c_box(this, size, size), xPos, yPos));
|
||||
|
||||
//@formatter:off
|
||||
final RectConstraint flyingFontBox = c_centered(
|
||||
c_box(this, c_n(0), c_n(64)),
|
||||
InputSystem.mouseX,
|
||||
InputSystem.mouseY
|
||||
);
|
||||
//@formatter:on
|
||||
final RectConstraint fpsbox = c_centered(c_box(this, 0, 64), InputSystem.mouseX, InputSystem.mouseY);
|
||||
|
||||
text = new TextRenderer(Res.getFont("default"), RGB.YELLOW, Align.CENTER);
|
||||
text.setContext(flyingFontBox);
|
||||
final StringProvider sp = new StringProvider() {
|
||||
|
||||
@Override
|
||||
public String getString()
|
||||
{
|
||||
return getDisplay().getFps() + " fps";
|
||||
}
|
||||
};
|
||||
|
||||
text = new TextPainter(Res.getFont("default"), Align.CENTER, RGB.YELLOW, sp);
|
||||
|
||||
text.setContext(fpsbox);
|
||||
|
||||
bindKeyStroke(new KeyStroke(Keys.KEY_RETURN), new Runnable() {
|
||||
|
||||
@@ -97,7 +103,13 @@ public class LayerFlyingCat extends ScreenLayer implements Updateable, MouseButt
|
||||
public void render()
|
||||
{
|
||||
cat.render();
|
||||
text.render(getDisplay().getFps()+" fps");
|
||||
text.render();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,17 +9,18 @@ import mightypork.gamecore.input.Keys;
|
||||
import mightypork.rogue.Res;
|
||||
import mightypork.rogue.events.ActionRequest;
|
||||
import mightypork.rogue.events.ActionRequest.RequestType;
|
||||
import mightypork.rogue.screens.LayerFps;
|
||||
|
||||
|
||||
public class ScreenTestCat extends LayeredScreen {
|
||||
|
||||
LayerFlyingCat layer;
|
||||
|
||||
|
||||
public ScreenTestCat(AppAccess app) {
|
||||
super(app);
|
||||
|
||||
addLayer(layer = new LayerFlyingCat(this));
|
||||
addLayer(new LayerFps(this));
|
||||
addLayer(new LayerFlyingCat(this));
|
||||
|
||||
bindKeyStroke(new KeyStroke(Keys.KEY_ESCAPE), new Runnable() {
|
||||
|
||||
|
||||
@@ -2,36 +2,36 @@ package mightypork.rogue.screens.test_font;
|
||||
|
||||
|
||||
import mightypork.gamecore.control.AppAccess;
|
||||
import static mightypork.utils.math.constraints.ConstraintFactory.*;
|
||||
import mightypork.gamecore.gui.renderers.TextPainter;
|
||||
import mightypork.gamecore.gui.screens.Screen;
|
||||
import mightypork.gamecore.render.fonts.FontRenderer;
|
||||
import mightypork.gamecore.render.fonts.FontRenderer.Align;
|
||||
import mightypork.rogue.Res;
|
||||
import mightypork.utils.math.color.RGB;
|
||||
import mightypork.utils.math.coord.Coord;
|
||||
import mightypork.utils.math.constraints.RectConstraint;
|
||||
|
||||
|
||||
public class ScreenTestFont extends Screen {
|
||||
|
||||
private final FontRenderer fr;
|
||||
private final TextPainter tp;
|
||||
|
||||
|
||||
public ScreenTestFont(AppAccess app) {
|
||||
super(app);
|
||||
|
||||
fr = new FontRenderer(Res.getFont("default"));
|
||||
tp = new TextPainter(Res.getFont("default"), Align.CENTER, RGB.GREEN);
|
||||
tp.setText("Hello World!");
|
||||
|
||||
RectConstraint strbox = c_grow(c_center(this), 0, c_div(c_height(this), 10));
|
||||
|
||||
tp.setContext(strbox);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void renderScreen()
|
||||
{
|
||||
final String str = "O hai";
|
||||
|
||||
final double height = getRect().getHeight() / 5D;
|
||||
final Coord space = fr.getNeededSpace(str, height);
|
||||
|
||||
final Coord origin = getRect().getCenter().sub(space.half());
|
||||
|
||||
fr.draw(str, origin, height, RGB.GREEN);
|
||||
tp.render();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user