diff options
author | Ida Massow <massow@informatik.uni-luebeck.de> | 2011-06-06 19:53:45 +0200 |
---|---|---|
committer | Ida Massow <massow@informatik.uni-luebeck.de> | 2011-06-06 19:53:45 +0200 |
commit | 682357b5841f7853212e354199d1a46589663364 (patch) | |
tree | 7a383625543dbfdedf297a97c927a518a38b30d3 /src/jrummikub/view/impl/StonePainter.java | |
parent | 41786cb8423167fe5488931c695404f2b38b19f9 (diff) | |
download | JRummikub-682357b5841f7853212e354199d1a46589663364.tar JRummikub-682357b5841f7853212e354199d1a46589663364.zip |
Double ist das neue float
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@377 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/view/impl/StonePainter.java')
-rw-r--r-- | src/jrummikub/view/impl/StonePainter.java | 117 |
1 files changed, 62 insertions, 55 deletions
diff --git a/src/jrummikub/view/impl/StonePainter.java b/src/jrummikub/view/impl/StonePainter.java index 09b6dcc..ea52387 100644 --- a/src/jrummikub/view/impl/StonePainter.java +++ b/src/jrummikub/view/impl/StonePainter.java @@ -23,17 +23,17 @@ import jrummikub.model.StoneColor; * coordinates */ class StonePainter { - private static final float ASPECT_RATIO = 0.75f; - private static final float DEFAULT_WIDTH = 40; - private static final float TEXT_POS = 0.275f; - private static final float FACE_WIDTH = 0.475f; - private static final float CIRCLE_POS = 0.725f; - private static final float CIRCLE_WIDTH = 0.45f; + private static final double ASPECT_RATIO = 0.75f; + private static final double DEFAULT_WIDTH = 40; + private static final double TEXT_POS = 0.275f; + private static final double FACE_WIDTH = 0.475f; + private static final double CIRCLE_POS = 0.725f; + private static final double CIRCLE_WIDTH = 0.45f; private static final Color BACKGROUND_COLOR = new Color(0.9f, 0.9f, 0.6f); - private static final float BRIGHTER_SCALE = 1.15f; - private static final float HOVER_RATIO = 0.7f; + private static final double BRIGHTER_SCALE = 1.15f; + private static final double HOVER_RATIO = 0.7f; private Map<StoneColor, Map<Integer, BufferedImage>> defaultStones; private Map<StoneColor, Map<Integer, BufferedImage>> selectedStones; @@ -43,15 +43,15 @@ class StonePainter { /** * The width of one pixel in the scale of 1.0 */ - public static final float WIDTH_SCALE = 1 / DEFAULT_WIDTH; + public static final double WIDTH_SCALE = 1 / DEFAULT_WIDTH; /** * The height of one pixel in the scale of 1.0 */ - public static final float HEIGHT_SCALE = ASPECT_RATIO / DEFAULT_WIDTH; + public static final double HEIGHT_SCALE = ASPECT_RATIO / DEFAULT_WIDTH; - private float scale; + private double scale; - private static int even(float f) { + private static int even(double f) { return 2 * (int) (f / 2); } @@ -60,7 +60,8 @@ class StonePainter { int g = (int) (color.getGreen() * BRIGHTER_SCALE); int b = (int) (color.getBlue() * BRIGHTER_SCALE); - return new Color(r > 255 ? 255 : r, g > 255 ? 255 : g, b > 255 ? 255 : b); + return new Color(r > 255 ? 255 : r, g > 255 ? 255 : g, b > 255 ? 255 + : b); } private static Color hover(Color color) { @@ -68,27 +69,28 @@ class StonePainter { int g = (int) (color.getGreen() * HOVER_RATIO + 255 * (1 - HOVER_RATIO)); int b = (int) (color.getBlue() * HOVER_RATIO + 255 * (1 - HOVER_RATIO)); - return new Color(r > 255 ? 255 : r, g > 255 ? 255 : g, b > 255 ? 255 : b); + return new Color(r > 255 ? 255 : r, g > 255 ? 255 : g, b > 255 ? 255 + : b); } public static Color getColor(StoneColor color) { switch (color) { - case BLACK: - return new Color(0.0f, 0.0f, 0.0f); - case BLUE: - return new Color(0.0f, 0.0f, 1.0f); - case ORANGE: - return new Color(1.0f, 0.4f, 0.0f); - case RED: - return new Color(0.9f, 0.0f, 0.25f); - case AQUA: - return new Color(0.0f, 0.85f, 0.75f); - case GREEN: - return new Color(0.0f, 0.65f, 0.0f); - case VIOLET: - return new Color(0.75f, 0.325f, 0.75f); - case GRAY: - return new Color(0.5f, 0.5f, 0.5f); + case BLACK: + return new Color(0.0f, 0.0f, 0.0f); + case BLUE: + return new Color(0.0f, 0.0f, 1.0f); + case ORANGE: + return new Color(1.0f, 0.4f, 0.0f); + case RED: + return new Color(0.9f, 0.0f, 0.25f); + case AQUA: + return new Color(0.0f, 0.85f, 0.75f); + case GREEN: + return new Color(0.0f, 0.65f, 0.0f); + case VIOLET: + return new Color(0.75f, 0.325f, 0.75f); + case GRAY: + return new Color(0.5f, 0.5f, 0.5f); } return null; @@ -98,9 +100,9 @@ class StonePainter { * Sets the new grid scale * * @param scale - * the new scale + * the new scale */ - public void setScale(float scale) { + public void setScale(double scale) { this.scale = scale; if (this.scale == 0) { @@ -112,14 +114,14 @@ class StonePainter { /** * @param x - * x position in screen coordinates + * x position in screen coordinates * @param y - * y position in screen coordinates + * y position in screen coordinates * @return position in grid coordinates */ public Position calculatePosition(int x, int y) { - float width = getStoneWidth(); - float height = getStoneHeight(); + double width = getStoneWidth(); + double height = getStoneHeight(); return new Position(x / width, y / height); } @@ -209,19 +211,21 @@ class StonePainter { defaultStones.put(color, new HashMap<Integer, BufferedImage>()); selectedStones.put(color, new HashMap<Integer, BufferedImage>()); hoveredStones.put(color, new HashMap<Integer, BufferedImage>()); - hoveredSelectedStones.put(color, new HashMap<Integer, BufferedImage>()); + hoveredSelectedStones.put(color, + new HashMap<Integer, BufferedImage>()); } } /** * @param scale - * the scaling factor for the grid coordinates + * the scaling factor for the grid coordinates */ - StonePainter(float scale) { + StonePainter(double scale) { setScale(scale); } - private void paintStoneBackground(Graphics2D g, Rectangle r, Color background) { + private void paintStoneBackground(Graphics2D g, Rectangle r, + Color background) { // Paint background g.setColor(background); g.fillRect(r.x, r.y, r.width, r.height); @@ -322,8 +326,9 @@ class StonePainter { pos + (fm.getAscent() - fm.getDescent()) / 2 + 1); } g.setColor(color); - g.drawString(value, (int) (r.x + r.width / 2 - stringRect.getWidth() / 2), - pos + (fm.getAscent() - fm.getDescent()) / 2); + g.drawString(value, + (int) (r.x + r.width / 2 - stringRect.getWidth() / 2), pos + + (fm.getAscent() - fm.getDescent()) / 2); } private void paintCircle(Graphics2D g, Rectangle r, Color background) { @@ -332,40 +337,42 @@ class StonePainter { // Paint circle g.setColor(background.darker()); - g.drawArc(r.x + r.width / 2 - size / 2, pos - size / 2, size, size, 50, 170); + g.drawArc(r.x + r.width / 2 - size / 2, pos - size / 2, size, size, 50, + 170); g.setColor(brighter(background)); - g.drawArc((int) (r.x + r.width / 2 - size / 2), pos - size / 2, size, size, - -130, 170); + g.drawArc((int) (r.x + r.width / 2 - size / 2), pos - size / 2, size, + size, -130, 170); } /** * Paints a stone * * @param g - * the graphics context to paint the stone on + * the graphics context to paint the stone on * @param stone - * the stone to paint + * the stone to paint * @param p - * the position of the stone + * the position of the stone * @param selected - * if selected is true the stone will be painted darker + * if selected is true the stone will be painted darker * @param hovered - * if hovered is true the stone will be painted brighter + * if hovered is true the stone will be painted brighter */ public void paintStone(Graphics2D g, Stone stone, Position p, boolean selected, boolean hovered) { int width = getStoneWidth(); int height = getStoneHeight(); - int x = Math.round(p.getX() * width), y = Math.round(p.getY() * height); + int x = (int) Math.round(p.getX() * width), y = (int) Math.round(p + .getY() * height); if (stone.isJoker()) { - g.drawImage(getStoneImage(stone.getColor(), 0, selected, hovered), x, y, - null); + g.drawImage(getStoneImage(stone.getColor(), 0, selected, hovered), + x, y, null); } else { g.drawImage( - getStoneImage(stone.getColor(), stone.getValue(), selected, hovered), - x, y, null); + getStoneImage(stone.getColor(), stone.getValue(), selected, + hovered), x, y, null); } } } |