added BaseGame
This commit is contained in:
parent
b90784f744
commit
09362620e5
111
Test.java
111
Test.java
|
@ -1,85 +1,60 @@
|
|||
import com.danitheskunk.skunkworks.*;
|
||||
import com.danitheskunk.skunkworks.BaseGame;
|
||||
import com.danitheskunk.skunkworks.Vec2i;
|
||||
import com.danitheskunk.skunkworks.gfx.Color;
|
||||
import com.danitheskunk.skunkworks.gfx.IRenderContext;
|
||||
import com.danitheskunk.skunkworks.gfx.vt.Terminal;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
public class Test extends BaseGame {
|
||||
private Terminal term;
|
||||
|
||||
public Test() {
|
||||
super(new Vec2i(1280, 720), "Skunkworks");
|
||||
}
|
||||
|
||||
public class Test {
|
||||
public static void main(String[] args) {
|
||||
/*
|
||||
var windows = Window.getAllVisible();
|
||||
new Test().run();
|
||||
}
|
||||
|
||||
System.out.printf("%d Open Windows:\n", windows.size());
|
||||
for(var window: windows) {
|
||||
System.out.printf("%s -- %s -- %s\n", window.getTitle(), window.getClassName(), window.getExecutableName());
|
||||
}
|
||||
windows.get(0).setBorder(true);
|
||||
windows.get(0).setBorderRounded(false);
|
||||
windows.get(0).move(new Recti(1280, 720, 2560, 1440));
|
||||
windows.get(0).debugPrintStyles();
|
||||
windows.get(0).debugPrintStylesEx();
|
||||
Window.onKey();
|
||||
Window.onNewWindow();
|
||||
Window.messageLoop();
|
||||
*/
|
||||
|
||||
var engine = new Engine();
|
||||
var window = engine.openWindow(new Vec2i(1280, 720), "Skunkworks");
|
||||
var img = engine.loadImage("C:\\Users\\dani\\Videos\\Screenshot 2022-06-25 17-00-59.png");
|
||||
var tex2 = window.loadTexture("C:\\art\\pixel stuff.png");
|
||||
var tileset = window.loadTextureArray("C:\\stream\\coding\\rlc\\tilemap.png", new Vec2i(16, 16));
|
||||
var font = window.loadFontTileset("EGA8x14.png");
|
||||
@Override
|
||||
protected void init() {
|
||||
var fontThin = window.loadFontTileset("fonts\\thin-6x12.png");
|
||||
var fontThin2 = window.loadFontTileset("fonts\\thin-12x12.png");
|
||||
var font2 = window.loadFontTTF("fonts\\LiberationSans-Regular.ttf", 16 * 8.f);
|
||||
var font3 = window.loadFontTTF("fonts\\LiberationSans-Regular.ttf", 16);
|
||||
var tex = window.loadTexture(img);
|
||||
var slice = window.loadNineSlice("demoassets\\9slice-2.png");
|
||||
var term = new Terminal(new Vec2i(80, 45), fontThin2, fontThin);
|
||||
//window.setDebug(true);
|
||||
term = new Terminal(new Vec2i(80, 45), fontThin2, fontThin);
|
||||
|
||||
term.setChar(new Vec2i(0, 0), 0xC9, Color.GREEN);
|
||||
term.setChar(new Vec2i(9, 9), 0xC9, Color.GREEN);
|
||||
term.setChar(new Vec2i(10, 10), 0xC9, Color.GREEN);
|
||||
term.drawHalfString(new Vec2i(11, 11), "AHello world. This is a test.", Color.GREEN);
|
||||
term.drawBoxDouble(new Recti(11, 12, 4, 4), Color.GREEN, Color.DARK_GRAY, true);
|
||||
var c1 = Color.GREEN;
|
||||
var c2 = new Color(0, 128, 0);
|
||||
|
||||
while(!window.shouldClose()) {
|
||||
window.tick();
|
||||
var renderContext = window.renderStart();
|
||||
/*renderContext.drawTextureRectangle(
|
||||
new Recti(0, 0, 1280, 720),
|
||||
tex,
|
||||
false
|
||||
);*/
|
||||
//renderContext.drawTextureRectangle(
|
||||
// new Recti(new Vec2i(200, 100), tex2.getSize()),
|
||||
// tex2,
|
||||
// true
|
||||
//);
|
||||
term.drawHorizontalSingleLine(new Vec2i(0, 0), 20, c2);
|
||||
term.drawHalfString(new Vec2i(6, 0), " Upgrades ");
|
||||
|
||||
/*renderContext.drawTextureRectangle(
|
||||
new Recti(new Vec2i(400, 400), new Vec2i(160, 160)),
|
||||
tileset.get(0x30),
|
||||
true
|
||||
);*/
|
||||
term.drawHalfString(new Vec2i(0, 1), " a", c1);
|
||||
term.drawHalfString(new Vec2i(1, 1), " - [", c2);
|
||||
term.drawHalfString(new Vec2i(3, 1), " Upgraded Skeleton", c1);
|
||||
term.drawHalfString(new Vec2i(12, 1), " ]", c2);
|
||||
term.drawHalfString(new Vec2i(16, 1), "10,000$", c1);
|
||||
|
||||
//byte[] str = {(byte)0xC9, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xCD, (byte)0xBB};
|
||||
//renderContext.drawString(new Vec2i(36, 36), new String(str), fontThin2, new Color(0, 255, 0));
|
||||
//renderContext.drawString(new Vec2i(36, 36), "\u00c9\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00BB", fontThin2, new Color(0, 255, 0));
|
||||
//renderContext.drawString(new Vec2i(36, 48), "\u00ba \u00ba", fontThin2, new Color(0, 255, 0));
|
||||
//renderContext.drawString(new Vec2i(36, 60), "\u00ba \u00ba", fontThin2, new Color(0, 255, 0));
|
||||
//renderContext.drawString(new Vec2i(36, 72), "\u00c8\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00cd\u00BC", fontThin2, new Color(0, 255, 0));
|
||||
//renderContext.drawString(new Vec2i(48, 48), "The quick brown fox jumps over the lazy dog", fontThin, new Color(0, 255, 0));
|
||||
//renderContext.drawString(new Vec2i(48, 60), "Soft Kitty, Warm Kitty, Little Ball of Fur. Happy Kitty, Sleepy Kitty, Purr Purr Purr.", fontThin, new Color(0, 255, 0));
|
||||
term.drawHalfString(new Vec2i(0, 2), " b", c1);
|
||||
term.drawHalfString(new Vec2i(1, 2), " - [", c2);
|
||||
term.drawHalfString(new Vec2i(3, 2), " Upgraded Eyes", c1);
|
||||
term.drawHalfString(new Vec2i(10, 2), " ]", c2);
|
||||
term.drawHalfString(new Vec2i(16, 2), " 7,000$", c1);
|
||||
|
||||
renderContext.drawTerminal(term);
|
||||
term.drawHalfString(new Vec2i(0, 3), " c", c1);
|
||||
term.drawHalfString(new Vec2i(1, 3), " - [", c2);
|
||||
term.drawHalfString(new Vec2i(3, 3), " Upgraded Senses", c1);
|
||||
term.drawHalfString(new Vec2i(11, 3), " ]", c2);
|
||||
term.drawHalfString(new Vec2i(16, 3), " 6,000$", c1);
|
||||
|
||||
//renderContext.drawNineSlice(slice, new Recti(100, 100, 75, 23));
|
||||
//renderContext.drawString(new Vec2i(118, 117), "Meow", font3, new Color(0,0,0));
|
||||
//renderContext.drawString(new Vec2i(122, 105), "Meow", font, new Color(0,0,0));
|
||||
window.renderFinish(renderContext);
|
||||
}
|
||||
term.drawHalfString(new Vec2i(0, 4), " d", c1);
|
||||
term.drawHalfString(new Vec2i(1, 4), " - [", c2);
|
||||
term.drawHalfString(new Vec2i(3, 4), " Upgraded Legs", c1);
|
||||
term.drawHalfString(new Vec2i(10, 4), " ]", c2);
|
||||
term.drawHalfString(new Vec2i(16, 4), " 4,500$", c1);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void render(IRenderContext rc) {
|
||||
rc.drawTerminal(term);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
package com.danitheskunk.skunkworks;
|
||||
|
||||
import com.danitheskunk.skunkworks.gfx.IRenderContext;
|
||||
|
||||
public abstract class BaseGame {
|
||||
protected Engine engine;
|
||||
protected IWindow window;
|
||||
|
||||
public BaseGame(Vec2i windowSize, String windowTitle) {
|
||||
this.engine = new Engine();
|
||||
this.window = engine.openWindow(windowSize, windowTitle);
|
||||
init();
|
||||
}
|
||||
|
||||
public void run() {
|
||||
while(!window.shouldClose()) {
|
||||
window.tick();
|
||||
//todo: frame rate control
|
||||
update(1000.0 / 60.0);
|
||||
var rc = window.renderStart();
|
||||
render(rc);
|
||||
window.renderFinish(rc);
|
||||
}
|
||||
}
|
||||
|
||||
protected void init() {
|
||||
|
||||
}
|
||||
|
||||
protected void render(IRenderContext rc) {
|
||||
//todo: demo text?
|
||||
}
|
||||
|
||||
protected void update(double delta) {
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue