diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2019-12-18 23:06:14 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2019-12-18 23:06:14 +0100 |
commit | 797c4defd7bf0b6807a796278180bb01a8a96805 (patch) | |
tree | 4684fced4c178888394216981076950de32f6c24 /core/src/ch/asynk/gdx | |
parent | 888f704e5a6809d2b42b3c08ef143525a6f2780a (diff) | |
download | gdx-boardgame-797c4defd7bf0b6807a796278180bb01a8a96805.zip gdx-boardgame-797c4defd7bf0b6807a796278180bb01a8a96805.tar.gz |
UI : add drag(...) to Touchable, Element and Assembly
Diffstat (limited to 'core/src/ch/asynk/gdx')
-rw-r--r-- | core/src/ch/asynk/gdx/boardgame/Touchable.java | 1 | ||||
-rw-r--r-- | core/src/ch/asynk/gdx/boardgame/ui/Assembly.java | 14 | ||||
-rw-r--r-- | core/src/ch/asynk/gdx/boardgame/ui/Element.java | 6 |
3 files changed, 20 insertions, 1 deletions
diff --git a/core/src/ch/asynk/gdx/boardgame/Touchable.java b/core/src/ch/asynk/gdx/boardgame/Touchable.java index 0fd99d0..fab7ab9 100644 --- a/core/src/ch/asynk/gdx/boardgame/Touchable.java +++ b/core/src/ch/asynk/gdx/boardgame/Touchable.java @@ -3,4 +3,5 @@ package ch.asynk.gdx.boardgame; public interface Touchable { public boolean touch(float x, float y); + public boolean drag(float x, float y, int dx, int dy); } diff --git a/core/src/ch/asynk/gdx/boardgame/ui/Assembly.java b/core/src/ch/asynk/gdx/boardgame/ui/Assembly.java index 6754518..866c3dd 100644 --- a/core/src/ch/asynk/gdx/boardgame/ui/Assembly.java +++ b/core/src/ch/asynk/gdx/boardgame/ui/Assembly.java @@ -41,15 +41,27 @@ public abstract class Assembly extends Element @Override public boolean touch(float x, float y) { - for (Element e : children) + for (Element e : children) { if (e.touch(x, y)) { touched = e; return true; } + + } touched = null; return false; } + @Override public boolean drag(float x, float y, int dx, int dy) + { + if (touched != null) { + if (touched.drag(x, y, dx, dy)) + return true; + touched = null; + } + return false; + } + @Override public void draw(Batch batch) { if (tainted) computeGeometry(); diff --git a/core/src/ch/asynk/gdx/boardgame/ui/Element.java b/core/src/ch/asynk/gdx/boardgame/ui/Element.java index 3368f3c..dec0cc7 100644 --- a/core/src/ch/asynk/gdx/boardgame/ui/Element.java +++ b/core/src/ch/asynk/gdx/boardgame/ui/Element.java @@ -83,6 +83,12 @@ public abstract class Element implements Drawable, Paddable, Positionable, Touch return rect.contains(x, y); } + @Override public boolean drag(float x, float y, int dx, int dy) + { + if (blocked || !visible) return false; + return rect.contains(x, y); + } + public void taint() { this.tainted = true; |