Improve origins of targeting overlay

This commit is contained in:
drdev
2014-06-25 02:11:21 +00:00
parent 60c443e3ce
commit aea9ce67b3
2 changed files with 27 additions and 4 deletions

View File

@@ -61,10 +61,7 @@ public class TargetingOverlay {
final Map<Integer, Vector2> endpoints = new HashMap<Integer, Vector2>();
for (FCardPanel c : cardPanels) {
Vector2 cardScreenPos = c.getScreenPosition();
endpoints.put(c.getCard().getUniqueNumber(), new Vector2(
cardScreenPos.x + c.getWidth() / 4,
cardScreenPos.y + c.getHeight() / 2));
endpoints.put(c.getCard().getUniqueNumber(), c.getTargetingArrowOrigin());
}
final Combat combat = FControl.getGame().getCombat();

View File

@@ -1,5 +1,7 @@
package forge.toolbox;
import com.badlogic.gdx.math.Vector2;
import forge.Graphics;
import forge.card.CardRenderer;
import forge.game.card.Card;
@@ -73,6 +75,30 @@ public class FCardPanel extends FDisplayObject {
return PADDING;
}
public Vector2 getTargetingArrowOrigin() {
Vector2 origin = new Vector2(getScreenPosition());
float left = PADDING;
float top = PADDING;
float w = getWidth() - 2 * PADDING;
float h = getHeight() - 2 * PADDING;
if (w == h) { //adjust width if needed to make room for tapping
w = h / ASPECT_RATIO;
}
if (tapped) { //rotate box if tapped
top += h - w;
float temp = w;
w = h;
h = temp;
}
origin.x += left + w * 0.15f;
origin.y += top + h * 0.5f;
return origin;
}
@Override
public void draw(Graphics g) {
if (card == null) { return; }