diff options
Diffstat (limited to 'core/src/ch/asynk')
-rw-r--r-- | core/src/ch/asynk/gdx/boardgame/Piece.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/core/src/ch/asynk/gdx/boardgame/Piece.java b/core/src/ch/asynk/gdx/boardgame/Piece.java index 9e253e4..6b7f2b4 100644 --- a/core/src/ch/asynk/gdx/boardgame/Piece.java +++ b/core/src/ch/asynk/gdx/boardgame/Piece.java @@ -5,6 +5,8 @@ import java.lang.Math; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.math.Vector3; +import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.math.MathUtils; import ch.asynk.gdx.boardgame.Drawable; import ch.asynk.gdx.boardgame.Orientation; @@ -53,4 +55,23 @@ public class Piece extends Sprite implements Drawable, Positionable, Rotable, Sc { return (Orientation.fromR(getRotation()) == orientation); } + + public void getShootingPoint(Vector2 v, Piece target) + { + float x0 = getX(); + float y0 = getY(); + float x1 = target.getX(); + float y1 = target.getY(); + + float r = (float) (MathUtils.atan2(y1 - y0, x1 - x0)); + x0 += (Math.cos(r) + 1f) * (getWidth() / 2f); + y0 += (Math.sin(r) + 1f) * (getHeight() / 2f); + + v.set(x0, y0); + } + + public void getImpactPoint(Vector2 v) + { + v.set(getX()+ (getWidth() / 2f), getY() + (getHeight() / 2f)); + } } |