summaryrefslogtreecommitdiffstats
path: root/test/src/ch/asynk/gdx/tabletop
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2018-10-03 16:29:04 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2018-10-03 16:29:04 +0200
commit2f1bec6890815033211fde71e645c5a57e502a20 (patch)
treea83756b4df61e729fdbdf495c19423dc7799e269 /test/src/ch/asynk/gdx/tabletop
parent977ce8e5a8f967f2ad9acc634111231e3af9ef7a (diff)
downloadgdx-boardgame-2f1bec6890815033211fde71e645c5a57e502a20.zip
gdx-boardgame-2f1bec6890815033211fde71e645c5a57e502a20.tar.gz
tabletop -> boardgame
Diffstat (limited to 'test/src/ch/asynk/gdx/tabletop')
-rw-r--r--test/src/ch/asynk/gdx/tabletop/test/AbstractScreen.java168
-rw-r--r--test/src/ch/asynk/gdx/tabletop/test/Assets.java84
-rw-r--r--test/src/ch/asynk/gdx/tabletop/test/BoardScreen.java240
-rw-r--r--test/src/ch/asynk/gdx/tabletop/test/DesktopLauncher.java14
-rw-r--r--test/src/ch/asynk/gdx/tabletop/test/GdxBoardTest.java97
-rw-r--r--test/src/ch/asynk/gdx/tabletop/test/LoadingScreen.java168
-rw-r--r--test/src/ch/asynk/gdx/tabletop/test/MenuScreen.java86
-rw-r--r--test/src/ch/asynk/gdx/tabletop/test/UiScreen.java103
8 files changed, 0 insertions, 960 deletions
diff --git a/test/src/ch/asynk/gdx/tabletop/test/AbstractScreen.java b/test/src/ch/asynk/gdx/tabletop/test/AbstractScreen.java
deleted file mode 100644
index 0c81bfb..0000000
--- a/test/src/ch/asynk/gdx/tabletop/test/AbstractScreen.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package ch.asynk.gdx.tabletop.test;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.Screen;
-import com.badlogic.gdx.graphics.GL20;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.graphics.Camera;
-import com.badlogic.gdx.graphics.Texture;
-import com.badlogic.gdx.Input;
-import com.badlogic.gdx.InputAdapter;
-import com.badlogic.gdx.InputMultiplexer;
-import com.badlogic.gdx.input.GestureDetector;
-import com.badlogic.gdx.input.GestureDetector.GestureAdapter;
-import com.badlogic.gdx.math.Vector2;
-import com.badlogic.gdx.math.Vector3;
-
-import ch.asynk.gdx.tabletop.ui.Root;
-
-public abstract class AbstractScreen implements Screen
-{
- protected final float WORLD_RATIO = 0.5f;
- private static final float INPUT_DELAY = 0.1f; // filter out touches after gesture
- private static final float ZOOM_SCROLL_FACTOR = .1f;
- private static final float ZOOM_GESTURE_FACTOR = .01f;
-
- protected final Vector2 dragPos = new Vector2();
- protected final Vector3 boardTouch = new Vector3();
- protected final Vector3 hudTouch = new Vector3();
-
- protected final String dom;
- protected final GdxBoardTest app;
- protected final SpriteBatch batch;
- protected final Texture bg;
- protected final Root root;
- protected Camera camera;
- protected boolean inputBlocked;
- protected float inputDelay;
- protected boolean paused;
-
- protected abstract void feed();
- public AbstractScreen(final GdxBoardTest app, final String dom)
- {
- this.app = app;
- this.dom = dom;
- this.batch = new SpriteBatch();
- this.bg = app.assets.getTexture(app.assets.MAP_00);
- this.root = new Root(1);
- this.root.setPadding(15);
- feed();
- Gdx.input.setInputProcessor(getMultiplexer());
- this.inputBlocked = false;
- this.inputDelay = 0f;
- this.paused = false;
- }
-
- protected abstract void draw(SpriteBatch batch);
- @Override public void render(float delta)
- {
- if (paused) return;
-
- Gdx.gl.glClearColor(1, 1, 1, 1);
- Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
-
- camera.update();
- batch.setProjectionMatrix(camera.combined);
- batch.begin();
- draw(batch);
- batch.end();
- }
-
- @Override public void resize(int width, int height)
- {
- GdxBoardTest.debug(dom, String.format("resize (%d,%d)",width, height));
- if (width >= height) {
- camera.viewportWidth = bg.getWidth();
- camera.viewportHeight = bg.getHeight() / (float)width * (float)height;
- } else {
- camera.viewportHeight = bg.getHeight();
- camera.viewportWidth = bg.getWidth() / (float)height * (float)width;
- }
- camera.viewportWidth *= WORLD_RATIO;
- camera.viewportHeight *= WORLD_RATIO;
- camera.update();
- root.resize(
- camera.position.x - (camera.viewportWidth / 2f),
- camera.position.y - (camera.viewportHeight / 2f),
- camera.viewportWidth,
- camera.viewportHeight
- );
- }
-
- @Override public void dispose()
- {
- GdxBoardTest.debug(dom, "dispose()");
- batch.dispose();
- }
-
- @Override public void show()
- {
- GdxBoardTest.debug(dom, "show()");
- paused = false;
- }
-
- @Override public void hide()
- {
- GdxBoardTest.debug(dom, "hide()");
- paused = true;
- }
-
- @Override public void pause()
- {
- GdxBoardTest.debug(dom, "pause() ");
- paused = true;
- }
-
- @Override public void resume()
- {
- GdxBoardTest.debug(dom, "resume() ");
- resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
- paused = false;
- }
-
- protected abstract void onTouch(int x, int y);
- protected abstract void onZoom(float dz);
- protected abstract void onDragged(int dx, int dy);
- private InputMultiplexer getMultiplexer()
- {
- final InputMultiplexer multiplexer = new InputMultiplexer();
- multiplexer.addProcessor(new InputAdapter() {
- @Override public boolean scrolled(int amount)
- {
- onZoom(amount * ZOOM_SCROLL_FACTOR);
- return true;
- }
- @Override public boolean touchDown(int x, int y, int pointer, int button)
- {
- if (inputBlocked) return true;
- if (button == Input.Buttons.LEFT) {
- dragPos.set(x, y);
- onTouch(x, y);
- }
- return true;
- }
- @Override public boolean touchDragged(int x, int y, int pointer)
- {
- int dx = (int) (dragPos.x - x);
- int dy = (int) (dragPos.y - y);
- dragPos.set(x, y);
- onDragged(dx, dy);
- return true;
- }
- });
- multiplexer.addProcessor(new GestureDetector(new GestureAdapter() {
- @Override public boolean zoom(float initialDistance, float distance)
- {
- if (initialDistance > distance)
- onZoom(ZOOM_GESTURE_FACTOR);
- else
- onZoom(-ZOOM_GESTURE_FACTOR);
- inputBlocked = true;
- inputDelay = INPUT_DELAY;
- return true;
- }
- }));
-
- return multiplexer;
- }
-}
diff --git a/test/src/ch/asynk/gdx/tabletop/test/Assets.java b/test/src/ch/asynk/gdx/tabletop/test/Assets.java
deleted file mode 100644
index 112d2ae..0000000
--- a/test/src/ch/asynk/gdx/tabletop/test/Assets.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package ch.asynk.gdx.tabletop.test;
-
-import com.badlogic.gdx.assets.loaders.FileHandleResolver;
-import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver;
-import com.badlogic.gdx.graphics.Texture;
-import com.badlogic.gdx.graphics.g2d.BitmapFont;
-import com.badlogic.gdx.graphics.g2d.TextureAtlas;
-import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
-import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGeneratorLoader;
-import com.badlogic.gdx.graphics.g2d.freetype.FreetypeFontLoader;
-import com.badlogic.gdx.graphics.g2d.freetype.FreetypeFontLoader.FreeTypeFontLoaderParameter;
-
-public class Assets extends ch.asynk.gdx.tabletop.Assets
-{
- public static final String LOADING = "loading.atlas";
-
- public static final String CORNER = "corner.png";
- public static final String MAP_00 = "map_00.png";
- public static final String CHESS = "chess.jpg";
- public static final String TRI = "triangle.png";
- public static final String FONT = "veteran-typewriter.ttf";
- public static final String FONT_20 = "size20.ttf";
- public static final String FONT_25 = "size25.ttf";
- public static final String PATCH = "ui-patch.png";
- public static final String SHERMAN = "sherman.png";
-
- private final FreeTypeFontLoaderParameter params20;
- private final FreeTypeFontLoaderParameter params25;
-
- public Assets()
- {
- super();
- final FileHandleResolver resolver = new InternalFileHandleResolver();
- setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
- setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));
- params20 = new FreeTypeFontLoaderParameter();
- params20.fontFileName = FONT;
- params20.fontParameters.size = 20;
- params25 = new FreeTypeFontLoaderParameter();
- params25.fontFileName = FONT;
- params25.fontParameters.size = 25;
- }
-
- @Override public void dispose()
- {
- GdxBoardTest.debug("diagnostics:\n" + getDiagnostics() );
- clear();
- super.dispose();
- }
-
- public void loadLoading()
- {
- load(LOADING, TextureAtlas.class);
- }
-
- public void unloadLoading()
- {
- unload(LOADING);
- }
-
- public void loadApp()
- {
- load(MAP_00, Texture.class);
- load(CHESS, Texture.class);
- load(TRI, Texture.class);
- load(CORNER, Texture.class);
- load(PATCH, Texture.class);
- load(SHERMAN, Texture.class);
- load(FONT_20, BitmapFont.class, params20);
- load(FONT_25, BitmapFont.class, params25);
- }
-
- public void unloadApp()
- {
- unload(MAP_00);
- unload(CHESS);
- unload(TRI);
- unload(CORNER);
- unload(PATCH);
- unload(SHERMAN);
- unload(FONT_20);
- unload(FONT_25);
- }
-}
diff --git a/test/src/ch/asynk/gdx/tabletop/test/BoardScreen.java b/test/src/ch/asynk/gdx/tabletop/test/BoardScreen.java
deleted file mode 100644
index 2fd3c4f..0000000
--- a/test/src/ch/asynk/gdx/tabletop/test/BoardScreen.java
+++ /dev/null
@@ -1,240 +0,0 @@
-package ch.asynk.gdx.tabletop.test;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.graphics.GL20;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.graphics.Texture;
-import com.badlogic.gdx.math.Vector2;
-
-import ch.asynk.gdx.tabletop.Camera;
-import ch.asynk.gdx.tabletop.Board;
-import ch.asynk.gdx.tabletop.board.BoardFactory;
-import ch.asynk.gdx.tabletop.ui.Alignment;
-import ch.asynk.gdx.tabletop.ui.Button;
-import ch.asynk.gdx.tabletop.ui.Root;
-
-public class BoardScreen extends AbstractScreen
-{
-
- private static final boolean DEBUG = true;
-
- private class MyBoard
- {
- private final Assets assets;
- private final Texture sherman;
- private final Vector2 v;
- public Texture map;
- public Board board;
- public int dx;
- public int dy;
- public int w;
- public int h;
- public float r;
-
- public MyBoard(final Assets assets)
- {
- this.assets = assets;
- this.sherman = assets.getTexture(assets.SHERMAN);
- this.v = new Vector2();
- }
-
- public void draw(SpriteBatch batch)
- {
- batch.draw(map, dx, dy, map.getWidth()/2, map.getHeight()/2, map.getWidth(), map.getHeight(), 1, 1, r, 0, 0, map.getWidth(), map.getHeight(), false, false);
- batch.draw(sherman, v.x - (sherman.getWidth() / 2), v.y - (sherman.getHeight() / 2));
- }
-
- public void reset()
- {
- board.centerOf(0, 0, v);
- }
-
- public boolean touch(float x, float y)
- {
- board.toBoard(x, y, v);
- GdxBoardTest.debug("BoardScreen", String.format("touchDown [%d;%d] => [%d;%d]", (int)x, (int)y, (int)v.x, (int)v.y));
- board.centerOf((int)v.x, (int)v.y, v);
- GdxBoardTest.debug("BoardScreen", String.format(" => [%d;%d]", (int)v.x, (int)v.y));
- return true;
- }
-
- public void setHEX_V()
- {
- map = assets.getTexture(assets.MAP_00);
- r = 0;
- dx = 0;
- dy = 0;
- w = map.getWidth();
- h = map.getHeight();
- board = BoardFactory.getBoard(BoardFactory.BoardType.HEX, 110, 50, 103, BoardFactory.BoardOrientation.VERTICAL);
- }
-
- public void setHEX_H()
- {
- map = assets.getTexture(assets.MAP_00);
- r = 90;
- dx = - ( map.getWidth() - map.getHeight() ) / 2;
- dy = - dx;
- w = map.getHeight();
- h = map.getWidth();
- board = BoardFactory.getBoard(BoardFactory.BoardType.HEX, 110, 103, 50, BoardFactory.BoardOrientation.HORIZONTAL);
- }
-
- public void setSQUARE()
- {
- map = assets.getTexture(assets.CHESS);
- r = 0;
- dx = 0;
- dy = 0;
- w = map.getWidth();
- h = map.getHeight();
- board = BoardFactory.getBoard(BoardFactory.BoardType.SQUARE, 83, 5, 5);
- }
-
- public void setTRI_H()
- {
- map = assets.getTexture(assets.TRI);
- r = 0;
- dx = 0;
- dy = 0;
- w = map.getWidth();
- h = map.getHeight();
- board = BoardFactory.getBoard(BoardFactory.BoardType.TRIANGLE, 150, 109, 53, BoardFactory.BoardOrientation.HORIZONTAL);
- }
-
- public void setTRI_V()
- {
- map = assets.getTexture(assets.TRI);
- r = 90;
- dx = - ( map.getWidth() - map.getHeight() ) / 2;
- dy = - dx;
- w = map.getHeight();
- h = map.getWidth();
- board = BoardFactory.getBoard(BoardFactory.BoardType.TRIANGLE, 150, 16, 110, BoardFactory.BoardOrientation.VERTICAL);
- }
- }
-
- public enum State
- {
- HEX_V, HEX_H, SQUARE, TRI_H, TRI_V, DONE;
- public State next()
- {
- switch(this) {
- case HEX_V:
- return HEX_H;
- case HEX_H:
- return SQUARE;
- case SQUARE:
- return TRI_H;
- case TRI_H:
- return TRI_V;
- case TRI_V:
- return DONE;
- default:
- return HEX_V;
- }
- }
- }
- private State state;
-
- private Camera cam;
- private MyBoard board;
- private Button btn;
- private Root root;
-
- public BoardScreen(final GdxBoardTest app)
- {
- super(app, "");
- }
-
- @Override protected void feed()
- {
- this.board = new MyBoard(app.assets);
- this.camera = this.cam = new Camera(10, board.w, board.h, 1.0f, 0.3f, false);
- this.btn = new Button(
- app.assets.getFont(app.assets.FONT_25),
- app.assets.getNinePatch(app.assets.PATCH, 23, 23, 23 ,23),
- 15);
- this.btn.setAlignment(Alignment.BOTTOM_RIGHT);
- this.btn.write("next");
- this.root = new Root(1);
- this.root.add(btn);
- this.root.setPadding(5);
- setState(State.HEX_V);
- }
-
- @Override public void draw(SpriteBatch batch) { }
- @Override public void render(float delta)
- {
- if (paused) return;
-
- if (inputBlocked) {
- inputDelay -= delta;
- if (inputDelay <= 0f)
- inputBlocked = false;
- }
-
- Gdx.gl.glClearColor(0, 0, 0, 1);
- Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
-
- cam.applyBoardViewport();
- batch.setProjectionMatrix(cam.combined);
- batch.begin();
- board.draw(batch);
- batch.end();
-
- cam.applyHudViewport();
- batch.setProjectionMatrix(cam.getHudMatrix());
- batch.begin();
- root.draw(batch);
- batch.end();
- }
-
- @Override public void resize(int width, int height)
- {
- GdxBoardTest.debug("BoardScrean", String.format("resize (%d,%d)",width, height));
- cam.updateViewport(width, height);
- root.resize(cam.getHud());
- }
-
- @Override protected void onDragged(int dx, int dy)
- {
- cam.translate(dx, dy);
- }
-
- @Override protected void onTouch(int x, int y)
- {
- cam.unproject(x, y, boardTouch);
- cam.unprojectHud(x, y, hudTouch);
- if (btn.touch(hudTouch.x, hudTouch.y)) {
- setState(state.next());
- } else {
- board.touch(boardTouch.x, boardTouch.y);
- }
- }
-
- @Override protected void onZoom(float dz)
- {
- cam.zoom(dz);
- resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
- }
-
- private void setState(State state)
- {
- switch (state) {
- case HEX_V: board.setHEX_V(); break;
- case HEX_H: board.setHEX_H(); break;
- case SQUARE: board.setSQUARE(); break;
- case TRI_H: board.setTRI_H(); break;
- case TRI_V: board.setTRI_V(); break;
- case DONE:
- cam.applyScreenViewport();
- this.app.switchToMenu();
- return;
- }
- board.reset();
- cam.setDimension(board.w, board.h);
- onZoom(1);
- this.state = state;
- }
-}
diff --git a/test/src/ch/asynk/gdx/tabletop/test/DesktopLauncher.java b/test/src/ch/asynk/gdx/tabletop/test/DesktopLauncher.java
deleted file mode 100644
index ca0b44a..0000000
--- a/test/src/ch/asynk/gdx/tabletop/test/DesktopLauncher.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package ch.asynk.gdx.tabletop.test;
-
-import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
-import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
-
-public class DesktopLauncher {
- public static void main (String[] arg) {
- LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
- new LwjglApplication(new GdxBoardTest(), config);
- config.title = "gdx-tabletop Demo";
- config.width=800;
- config.height=600;
- }
-}
diff --git a/test/src/ch/asynk/gdx/tabletop/test/GdxBoardTest.java b/test/src/ch/asynk/gdx/tabletop/test/GdxBoardTest.java
deleted file mode 100644
index 7e6bcd4..0000000
--- a/test/src/ch/asynk/gdx/tabletop/test/GdxBoardTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package ch.asynk.gdx.tabletop.test;
-
-import com.badlogic.gdx.Game;
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.Screen;
-
-public class GdxBoardTest extends Game
-{
- private static final String DOM = "GdxBoardTest";
-
- private enum State
- {
- NONE,
- LOADING,
- MENU,
- UI,
- BOARD,
- EXIT
- }
- private State state;
-
- public final Assets assets = new Assets();
-
- @Override public void create()
- {
- this.state = State.NONE;
- Gdx.app.setLogLevel(Gdx.app.LOG_DEBUG);
- debug(String.format("create() [%d;%d] %f", Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), Gdx.graphics.getDensity()));
- switchToLoading();
- }
-
- @Override public void dispose()
- {
- debug("dispose()");
- assets.clear();
- assets.dispose();
- }
-
- public static void error(String msg)
- {
- Gdx.app.error(DOM, msg);
- }
-
- public static void debug(String msg)
- {
- Gdx.app.debug(DOM, msg);
- }
-
- public static void debug(String from, String msg)
- {
- Gdx.app.debug(DOM, String.format("%s : %s", from, msg));
- }
-
- private void switchTo(Screen nextScreen, State nextState)
- {
- if (state == nextState) {
- error("switch from and to " + state);
- return;
- }
- if (state == State.LOADING) {
- assets.unloadLoading();
- }
- if (state != State.NONE) {
- getScreen().dispose();
- }
- setScreen(nextScreen);
- this.state = nextState;
- }
-
- public void switchToLoading()
- {
- assets.loadLoading();
- assets.finishLoading();
- switchTo(new LoadingScreen(this, () -> assets.loadApp(), () -> switchToMenu()), State.LOADING);
- }
-
- public void switchToMenu()
- {
- switchTo(new MenuScreen(this), State.MENU);
- }
-
- public void switchToUi()
- {
- switchTo(new UiScreen(this), State.UI);
- }
-
- public void switchToBoard()
- {
- switchTo(new BoardScreen(this), State.BOARD);
- }
-
- public void switchToExit()
- {
- Gdx.app.exit();
- switchTo(null, State.EXIT);
- }
-}
diff --git a/test/src/ch/asynk/gdx/tabletop/test/LoadingScreen.java b/test/src/ch/asynk/gdx/tabletop/test/LoadingScreen.java
deleted file mode 100644
index 61dce4c..0000000
--- a/test/src/ch/asynk/gdx/tabletop/test/LoadingScreen.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package ch.asynk.gdx.tabletop.test;
-
-import com.badlogic.gdx.Gdx;
-import com.badlogic.gdx.Screen;
-import com.badlogic.gdx.graphics.GL20;
-import com.badlogic.gdx.graphics.Color;
-import com.badlogic.gdx.graphics.OrthographicCamera;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.graphics.g2d.TextureAtlas;
-import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion;
-
-public class LoadingScreen implements Screen
-{
- private static final String DOM = "LoadingScreen";
-
- private final GdxBoardTest app;
- private final SpriteBatch batch;
- private final Color c;
- private final OrthographicCamera camera;
-
- private final float BLINK_AFTER = 1f;
- private final float ALPHA_FACTOR = 1.5f;
-
- private boolean paused;
- private TextureAtlas atlas;
- private AtlasRegion bar;
- private AtlasRegion border;
- private AtlasRegion loading;
- private AtlasRegion loaded;
-
- private int x, y;
- private int count;
- private float percent;
- private float alpha;
- private boolean incr;
- private boolean isLoaded;
-
- public interface LoadAction {
- void call();
- }
- private LoadAction onLoaded;
-
- public LoadingScreen(final GdxBoardTest app, LoadAction startLoading, LoadAction onLoaded)
- {
- this.app = app;
- this.onLoaded = onLoaded;
- this.batch = new SpriteBatch();
- this.c = batch.getColor();
- this.camera = new OrthographicCamera();
- int w = Gdx.graphics.getWidth();
- int h = Gdx.graphics.getHeight();
- this.camera.setToOrtho(false, w, h);
- this.camera.update();
- this.paused = false;
- atlas = app.assets.getAtlas(app.assets.LOADING);
- bar = atlas.findRegion("bar");
- border = atlas.findRegion("border");
- loading = atlas.findRegion("loading");
- loaded = atlas.findRegion("loaded");
- computeCoords(w, h);
- percent = 0f;
- alpha = 1f;
- incr = false;
- isLoaded = false;
- startLoading.call();
- }
-
- private void computeCoords(int width, int height)
- {
- x = (width - border.getRegionWidth()) / 2;
- y = (height - border.getRegionHeight()) / 2;
- }
-
- @Override public void render(float delta)
- {
- if (paused) return;
-
- if (!isLoaded) {
- if (app.assets.update()) {
- GdxBoardTest.debug(DOM, "assets loaded");
- isLoaded = true;
- percent = 1f;
- } else {
- percent = app.assets.getProgress();
- }
- }
-
- if (!isLoaded && percent >= 1f) {
- count = 0;
- alpha = 1f;
- incr = false;
- }
-
- delta *= ALPHA_FACTOR;
- if (incr) {
- alpha += delta;
- if (alpha >= 1f ) {
- alpha = 1f;
- incr = false;
- if (isLoaded) count += 1;
- if (count >= BLINK_AFTER) {
- onLoaded.call();
- return;
- }
- }
- } else {
- alpha -= delta;
- if (alpha <= 0f ) {
- alpha = 0f;
- incr = true;
- }
- }
-
- Gdx.gl.glClearColor(0, 0, 0, 1);
- Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
-
- batch.setProjectionMatrix(camera.combined);
- batch.begin();
- batch.setColor(c.r, c.g, c.b, 1f);
- batch.draw(border, x, y);
- batch.draw(bar, x + 4, y + 4, percent * bar.getRegionWidth(), bar.getRegionHeight());
- batch.setColor(c.r, c.g, c.b, alpha);
- if (!isLoaded) {
- batch.draw(loading, x, y + border.getRegionHeight() + 3);
- } else {
- batch.draw(loaded, x + border.getRegionWidth() - loaded.getRegionWidth(), y - loaded.getRegionHeight() - 3);
- }
- batch.end();
- }
-
- @Override public void resize(int width, int height)
- {
- if (paused) return;
- GdxBoardTest.debug("LoadingScreen", String.format("resize (%d,%d)",width, height));
- this.camera.setToOrtho(false, width, height);
- this.camera.update();
- computeCoords(width, height);
- }
-
- @Override public void dispose()
- {
- GdxBoardTest.debug("LoadingScreen", "dispose()");
- batch.dispose();
- }
-
- @Override public void show()
- {
- GdxBoardTest.debug("LoadingScreen", "show()");
- }
-
- @Override public void hide()
- {
- GdxBoardTest.debug("LoadingScreen", "hide()");
- }
-
- @Override public void pause()
- {
- paused = true;
- GdxBoardTest.debug("LoadingScreen", "pause() ");
- }
-
- @Override public void resume()
- {
- GdxBoardTest.debug("LoadingScreen", "resume() ");
- resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
- paused = false;
- }
-}
diff --git a/test/src/ch/asynk/gdx/tabletop/test/MenuScreen.java b/test/src/ch/asynk/gdx/tabletop/test/MenuScreen.java
deleted file mode 100644
index bf94e75..0000000
--- a/test/src/ch/asynk/gdx/tabletop/test/MenuScreen.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package ch.asynk.gdx.tabletop.test;
-
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.graphics.g2d.Sprite;
-import com.badlogic.gdx.graphics.OrthographicCamera;
-
-import ch.asynk.gdx.tabletop.ui.Alignment;
-import ch.asynk.gdx.tabletop.ui.Menu;
-
-public class MenuScreen extends AbstractScreen
-{
- private Sprite corner;
- private Menu menu;
-
- public MenuScreen(final GdxBoardTest app)
- {
- super(app, "MenuScreen");
- }
-
- @Override protected void feed()
- {
- final Assets assets = app.assets;
- this.corner = new Sprite(assets.getTexture(assets.CORNER));
-
- this.menu = new Menu(
- assets.getFont(assets.FONT_25),
- assets.getNinePatch(assets.PATCH, 23, 23, 23 ,23),
- "Menu", new String[]{"UI","Board","Exit"});
- this.menu.setAlignment(Alignment.MIDDLE_CENTER);
- this.menu.setPaddings(5, 5);
- this.menu.setSpacings(10, 5);
- this.menu.setPadding(20);
- this.menu.setLabelsOffset(10);
- this.root.add(this.menu);
-
- this.camera = new OrthographicCamera(bg.getWidth() * WORLD_RATIO, bg.getHeight() * WORLD_RATIO);
- this.camera.position.set(bg.getWidth() / 2f, bg.getHeight() / 2f, 0);
- this.camera.update();
- }
-
- @Override protected void draw(SpriteBatch batch)
- {
- batch.draw(bg, 0, 0);
- drawCorners(batch);
- root.draw(batch);
- }
-
- private void drawCorners(SpriteBatch batch)
- {
- float right = root.getInnerX() + root.getInnerWidth() - corner.getWidth();
- float top = root.getInnerY() + root.getInnerHeight() - corner.getHeight();
- corner.setRotation(0);
- corner.setPosition(root.getInnerX(), top);
- corner.draw(batch);
- corner.setRotation(90);
- corner.setPosition(root.getInnerX(), root.getInnerY());
- corner.draw(batch);
- corner.setRotation(180);
- corner.setPosition(right, root.getInnerY());
- corner.draw(batch);
- corner.setPosition(right, top);
- corner.setRotation(270);
- corner.draw(batch);
- }
-
- @Override protected void onZoom(float dz) { }
- @Override protected void onDragged(int dx, int dy) { }
- @Override protected void onTouch(int x, int y)
- {
- hudTouch.set(x, y, 0);
- camera.unproject(hudTouch);
- if (root.touch(hudTouch.x, hudTouch.y)) {
- switch(menu.touched()) {
- case 0:
- app.switchToUi();
- break;
- case 1:
- app.switchToBoard();
- break;
- case 2:
- app.switchToExit();
- break;
- }
- }
- }
-}
diff --git a/test/src/ch/asynk/gdx/tabletop/test/UiScreen.java b/test/src/ch/asynk/gdx/tabletop/test/UiScreen.java
deleted file mode 100644
index 261d461..0000000
--- a/test/src/ch/asynk/gdx/tabletop/test/UiScreen.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package ch.asynk.gdx.tabletop.test;
-
-import com.badlogic.gdx.graphics.g2d.BitmapFont;
-import com.badlogic.gdx.graphics.g2d.NinePatch;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
-import com.badlogic.gdx.graphics.OrthographicCamera;
-
-import ch.asynk.gdx.tabletop.ui.Alignment;
-import ch.asynk.gdx.tabletop.ui.Button;
-
-public class UiScreen extends AbstractScreen
-{
- private Button hello;
-
- public UiScreen(final GdxBoardTest app)
- {
- super(app, "UiScreen");
- }
-
- public enum State
- {
- POSITIONS, DONE;
- public State next()
- {
- switch(this) {
- case POSITIONS:
- return DONE;
- default:
- return POSITIONS;
- }
- }
- }
- private State state;
-
- @Override protected void feed()
- {
- final NinePatch patch = app.assets.getNinePatch(app.assets.PATCH, 23, 23, 23 ,23);
- final BitmapFont font = app.assets.getFont(app.assets.FONT_25);
-
- this.hello = new Button(font, patch, 10, 15);
- this.hello.write("Hello");
- this.root.add(this.hello);
-
- this.camera = new OrthographicCamera(bg.getWidth() * WORLD_RATIO, bg.getHeight() * WORLD_RATIO);
- this.camera.position.set(bg.getWidth() / 2f, bg.getHeight() / 2f, 0);
- this.camera.update();
- setState(State.POSITIONS);
- }
-
- private void setState(State state)
- {
- switch (state) {
- case DONE:
- app.switchToMenu();
- }
- this.state = state;
- }
-
- @Override protected void draw(SpriteBatch batch)
- {
- batch.draw(bg, 0, 0);
- switch (state) {
- case POSITIONS:
- drawButtons(batch);
- break;
- }
- }
-
- private void drawButtons(SpriteBatch batch)
- {
- hello.write("hello");
- hello.setAlignment(Alignment.TOP_LEFT);
- hello.setLabelAlignment(Alignment.BOTTOM_RIGHT);
- root.draw(batch);
- drawHello(batch, Alignment.TOP_CENTER, Alignment.BOTTOM_CENTER);
- drawHello(batch, Alignment.TOP_RIGHT, Alignment.BOTTOM_LEFT);
- drawHello(batch, Alignment.MIDDLE_LEFT, Alignment.MIDDLE_RIGHT);
- drawHello(batch, Alignment.MIDDLE_RIGHT, Alignment.MIDDLE_LEFT);
- drawHello(batch, Alignment.BOTTOM_LEFT, Alignment.TOP_RIGHT);
- drawHello(batch, Alignment.BOTTOM_CENTER, Alignment.TOP_CENTER);
- drawHello(batch, Alignment.BOTTOM_RIGHT, Alignment.TOP_LEFT);
- hello.write("next");
- drawHello(batch, Alignment.MIDDLE_CENTER, Alignment.MIDDLE_CENTER);
- }
-
- private void drawHello(SpriteBatch batch, Alignment alignment1, Alignment alignment2)
- {
- hello.setAlignment(alignment1);
- hello.setLabelAlignment(alignment2);
- hello.draw(batch);
- }
-
- @Override protected void onZoom(float dz) { }
- @Override protected void onDragged(int dx, int dy) { }
- @Override protected void onTouch(int x, int y)
- {
- hudTouch.set(x, y, 0);
- camera.unproject(hudTouch);
- if (root.touch(hudTouch.x, hudTouch.y)) {
- setState(state.next());
- }
- }
-}