diff options
| -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)); +    }  } | 
