Example usage for com.badlogic.gdx.graphics.glutils ShapeRenderer setColor

List of usage examples for com.badlogic.gdx.graphics.glutils ShapeRenderer setColor

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics.glutils ShapeRenderer setColor.

Prototype

public void setColor(Color color) 

Source Link

Document

Sets the color to be used by the next shapes drawn.

Usage

From source file:net.noviden.towerdefense.TurretFactory.ChaingunTurret.java

License:Open Source License

public void draw(ShapeRenderer shapeRenderer) {
    // draw base turret
    shapeRenderer.setColor(BASE_TURRET_COLOR);
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.circle(location.x, location.y, BASE_SIZE_RADIUS);

    // draw its identifying feature: three circles in a row
    shapeRenderer.setColor(Color.WHITE);
    shapeRenderer.circle(location.x, location.y, BASE_SIZE_RADIUS * 0.15f);
    shapeRenderer.circle(location.x + (BASE_SIZE_RADIUS * 0.5f), location.y, BASE_SIZE_RADIUS * 0.15f);
    shapeRenderer.circle(location.x - (BASE_SIZE_RADIUS * 0.5f), location.y, BASE_SIZE_RADIUS * 0.15f);
}

From source file:net.noviden.towerdefense.TurretFactory.HomingTurret.java

License:Open Source License

public void draw(ShapeRenderer shapeRenderer) {
    // draw base turret
    shapeRenderer.setColor(BASE_TURRET_COLOR);
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.circle(location.x, location.y, BASE_SIZE_RADIUS);

    // draw identifying feature: s, c, n, nw, ne
    shapeRenderer.setColor(Color.WHITE);

    // draw s//from  ww  w.  j  a va  2 s  . com
    shapeRenderer.circle(location.x, location.y + (BASE_SIZE_RADIUS * 0.5f), BASE_SIZE_RADIUS * 0.15f);

    // draw nw
    shapeRenderer.circle(location.x - (BASE_SIZE_RADIUS * 0.5f), location.y - (BASE_SIZE_RADIUS * 0.5f),
            BASE_SIZE_RADIUS * 0.15f);

    // draw n
    shapeRenderer.circle(location.x, location.y - (BASE_SIZE_RADIUS * 0.5f), BASE_SIZE_RADIUS * 0.15f);

    // draw ne
    shapeRenderer.circle(location.x + (BASE_SIZE_RADIUS * 0.5f), location.y - (BASE_SIZE_RADIUS * 0.5f),
            BASE_SIZE_RADIUS * 0.15f);

    // draw nn
    shapeRenderer.circle(location.x, location.y - (BASE_SIZE_RADIUS * 0.8f), BASE_SIZE_RADIUS * 0.15f);
}

From source file:net.noviden.towerdefense.TurretFactory.RocketTurret.java

License:Open Source License

public void draw(ShapeRenderer shapeRenderer) {
    // draw base turret
    shapeRenderer.setColor(BASE_TURRET_COLOR);
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.circle(location.x, location.y, BASE_SIZE_RADIUS);

    // draw identifying feature
    shapeRenderer.setColor(Color.WHITE);

    // draw center circle
    shapeRenderer.circle(location.x, location.y, BASE_SIZE_RADIUS * 0.15f);

    // draw n,s,w,e
    shapeRenderer.circle(location.x + (BASE_SIZE_RADIUS * 0.5f), location.y, BASE_SIZE_RADIUS * 0.15f);

    shapeRenderer.circle(location.x - (BASE_SIZE_RADIUS * 0.5f), location.y, BASE_SIZE_RADIUS * 0.15f);

    shapeRenderer.circle(location.x, location.y + (BASE_SIZE_RADIUS * 0.5f), BASE_SIZE_RADIUS * 0.15f);

    shapeRenderer.circle(location.x, location.y - (BASE_SIZE_RADIUS * 0.5f), BASE_SIZE_RADIUS * 0.15f);

    // draw ne, nw, se, sw
    shapeRenderer.circle(location.x + (BASE_SIZE_RADIUS * 0.5f), location.y - (BASE_SIZE_RADIUS * 0.5f),
            BASE_SIZE_RADIUS * 0.15f);// www  . ja  v  a  2s. c  o m

    shapeRenderer.circle(location.x - (BASE_SIZE_RADIUS * 0.5f), location.y - (BASE_SIZE_RADIUS * 0.5f),
            BASE_SIZE_RADIUS * 0.15f);

    shapeRenderer.circle(location.x + (BASE_SIZE_RADIUS * 0.5f), location.y + (BASE_SIZE_RADIUS * 0.5f),
            BASE_SIZE_RADIUS * 0.15f);

    shapeRenderer.circle(location.x - (BASE_SIZE_RADIUS * 0.5f), location.y + (BASE_SIZE_RADIUS * 0.5f),
            BASE_SIZE_RADIUS * 0.15f);
}

From source file:net.noviden.towerdefense.TurretFactory.ShotgunTurret.java

License:Open Source License

public void draw(ShapeRenderer shapeRenderer) {
    // draw base turret
    shapeRenderer.setColor(BASE_TURRET_COLOR);
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.circle(location.x, location.y, BASE_SIZE_RADIUS);

    // draw identifying feature: spread of circles
    shapeRenderer.setColor(Color.WHITE);

    // draw center circle
    shapeRenderer.circle(location.x, location.y, BASE_SIZE_RADIUS * 0.15f);

    // draw right two circles
    shapeRenderer.circle(location.x + (BASE_SIZE_RADIUS * 0.5f), location.y + (BASE_SIZE_RADIUS * 0.5f),
            BASE_SIZE_RADIUS * 0.15f);//from   w  w  w . j av  a2 s.co m
    shapeRenderer.circle(location.x + (BASE_SIZE_RADIUS * 0.5f), location.y - (BASE_SIZE_RADIUS * 0.5f),
            BASE_SIZE_RADIUS * 0.15f);

    // draw left two circles
    shapeRenderer.circle(location.x - (BASE_SIZE_RADIUS * 0.5f), location.y - (BASE_SIZE_RADIUS * 0.5f),
            BASE_SIZE_RADIUS * 0.15f);
    shapeRenderer.circle(location.x - (BASE_SIZE_RADIUS * 0.5f), location.y + (BASE_SIZE_RADIUS * 0.5f),
            BASE_SIZE_RADIUS * 0.15f);
}

From source file:net.noviden.towerdefense.TurretFactory.TurretManager.java

License:Open Source License

public void draw(ShapeRenderer shapeRenderer) {
    shapeRenderer.setColor(Color.BLUE);
    for (BaseTurret turret : turrets) {
        turret.draw(shapeRenderer);//from w w w . ja va2  s  .c om
    }
}

From source file:net.noviden.towerdefense.UnitFactory.HexagonUnit.java

License:Open Source License

public void draw(ShapeRenderer shapeRenderer) {
    // draw each unit's health as a percent of its shape
    float percentHealthMissing = 1.0f - (this.health / this.maxHealth);
    float percentToDraw;

    float s = centerToVertex / 2, c = (float) Math.sqrt(3) * centerToVertex / 2;

    // draw a hexagon centered at the current location
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.setColor(BASE_UNIT_COLOR);

    shapeRenderer.identity();/*  w  ww . j av  a  2 s.  c  o  m*/

    shapeRenderer.translate(location.x, location.y, 0.f);
    shapeRenderer.rotate(0f, 0f, 1f, rotation);

    //     E * * * F
    //   * * * * * * *
    // D * * * M * * * A
    //   * * * * * * *
    //    C * * * B

    // draw triangle MAB
    shapeRenderer.triangle(0, 0, centerToVertex, 0, s, -c);

    // draw triangle MBC
    shapeRenderer.triangle(0, 0, s, -c, -s, -c);

    // draw triangle MCD
    shapeRenderer.triangle(0, 0, -s, -c, -centerToVertex, 0);

    // draw triangle MDE
    shapeRenderer.triangle(0, 0, -centerToVertex, 0, -s, c);

    // draw triangle MEF
    shapeRenderer.triangle(0, 0, -s, c, s, c);

    // draw triangle MFA
    shapeRenderer.triangle(0, 0, s, c, centerToVertex, 0);

    if (percentHealthMissing > 0.0f) {

        // draw in missing health
        shapeRenderer.setColor(BASE_UNIT_DAMAGED_COLOR);

        // draw triangle MAB
        percentToDraw = MathUtils.clamp(percentHealthMissing / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, centerToVertex, 0,
                centerToVertex - (Math.abs(centerToVertex - s) * percentToDraw), -c * percentToDraw);

        // draw triangle MBC
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.166f) / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, s, -c, s - (s * 2 * percentToDraw), -c);

        // draw triangle MCD
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.33f) / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -s, -c, -s - (Math.abs(centerToVertex - s) * percentToDraw),
                -c + (c * percentToDraw));

        // draw triangle MDE
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.5f) / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -centerToVertex, 0,
                -centerToVertex + (Math.abs(centerToVertex - s) * percentToDraw), c * percentToDraw);

        // draw triangle MEF
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.66f) / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -s, c, -s + (s * 2 * percentToDraw), c);

        // draw triangle MFA
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.83f) / 0.166f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, s, c, s + (Math.abs(centerToVertex - s) * percentToDraw),
                c - (c * percentToDraw));
    }

    shapeRenderer.identity();
}

From source file:net.noviden.towerdefense.UnitFactory.PentagonUnit.java

License:Open Source License

@Override
public void draw(ShapeRenderer shapeRenderer) {
    // draw each unit's health as a percent of its shape
    float percentHealthMissing = 1.0f - (this.health / this.maxHealth);
    float percentToDraw;

    // thank you based wolframalpha
    // http://mathworld.wolfram.com/Pentagon.html

    float c1 = MathUtils.cos(MathUtils.PI * 2.0f / 5.0f) * centerToVertex,
            c2 = MathUtils.cos(MathUtils.PI / 5.0f) * centerToVertex,
            s1 = MathUtils.sin(MathUtils.PI * 2.0f / 5.0f) * centerToVertex,
            s2 = MathUtils.sin(MathUtils.PI * 4.0f / 5.0f) * centerToVertex;

    // draw a pentagon centered at the current location
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.setColor(BASE_UNIT_COLOR);

    shapeRenderer.identity();//  ww  w. j a  v a  2s .  c  o  m

    shapeRenderer.translate(location.x, location.y, 0.f);
    shapeRenderer.rotate(0f, 0f, 1f, rotation);

    // draw the pentagon

    //          A
    //        *   *
    //      E   M   B
    //       *     *
    //        D * C

    // draw triangle MAB
    shapeRenderer.triangle(0, 0, 0, centerToVertex, s1, c1);

    // draw triangle MBC
    shapeRenderer.triangle(0, 0, s1, c1, s2, -c2);

    // draw triangle MCD
    shapeRenderer.triangle(0, 0, s2, -c2, -s2, -c2);

    // draw triangle MDE
    shapeRenderer.triangle(0, 0, -s2, -c2, -s1, c1);

    // draw triangle MEA
    shapeRenderer.triangle(0, 0, -s1, c1, 0, centerToVertex);

    if (percentHealthMissing > 0.0f) {
        // draw missing health
        shapeRenderer.setColor(BASE_UNIT_DAMAGED_COLOR);

        // triangle MAB
        percentToDraw = MathUtils.clamp(percentHealthMissing / 0.2f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, 0, centerToVertex, s1 * percentToDraw,
                centerToVertex - (Math.abs(centerToVertex - c1) * percentToDraw));

        // triangle MBC
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.2f) / 0.2f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, s1, c1, s1 - (Math.abs(s1 - s2) * percentToDraw),
                c1 - ((c1 + c2) * percentToDraw));

        // triangle MCD
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.4f) / 0.2f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, s2, -c2, s2 - (s2 * 2 * percentToDraw), -c2);

        // triangle MDE
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.6f) / 0.2f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -s2, -c2, -s2 - (Math.abs(s1 - s2) * percentToDraw),
                -c2 + ((c1 + c2) * percentToDraw));

        // triangle MEA
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.8f) / 0.2f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -s1, c1, -s1 + (s1 * percentToDraw),
                c1 + (Math.abs(centerToVertex - c1) * percentToDraw));

    }

    shapeRenderer.identity();
}

From source file:net.noviden.towerdefense.UnitFactory.SquareUnit.java

License:Open Source License

@Override
public void draw(ShapeRenderer shapeRenderer) {
    // draw each unit's health as a percent of its shape
    float percentHealthMissing = 1.0f - (this.health / this.maxHealth);

    // draw a square centered at the current location
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.setColor(BASE_UNIT_COLOR);

    shapeRenderer.identity();/*from www .j  a  v  a2s  .c o  m*/

    shapeRenderer.translate(location.x, location.y, 0.f);
    shapeRenderer.rotate(0f, 0f, 1f, rotation);
    shapeRenderer.rect(-sideLength / 2, -sideLength / 2, sideLength, sideLength);

    // draw missing health: break up square into 4 distinct triangles
    if (percentHealthMissing > 0.0f) {
        shapeRenderer.setColor(BASE_UNIT_DAMAGED_COLOR);
        float percentToDraw;

        // draw 1 / 4
        percentToDraw = MathUtils.clamp(percentHealthMissing / 0.25f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, sideLength / 2, -sideLength / 2, sideLength / 2,
                -sideLength / 2 + percentToDraw * sideLength);

        // draw 2 / 4
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.25f) / 0.25f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, sideLength / 2, sideLength / 2,
                sideLength / 2 - percentToDraw * sideLength, sideLength / 2);

        // draw 3 / 4
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.5f) / 0.25f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -sideLength / 2, sideLength / 2, -sideLength / 2,
                sideLength / 2 - percentToDraw * sideLength);

        // draw 4 / 4
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.75f) / 0.25f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, -sideLength / 2, -sideLength / 2,
                -sideLength / 2 + percentToDraw * sideLength, -sideLength / 2);
    }

    // reset the shapeRenderer transformation matrix
    shapeRenderer.identity();
}

From source file:net.noviden.towerdefense.UnitFactory.TriangleUnit.java

License:Open Source License

@Override
public void draw(ShapeRenderer shapeRenderer) {
    // draw each unit's health as a percent of its shape
    float percentHealthMissing = 1.0f - (this.health / this.maxHealth);
    float percentToDraw;

    // draw a square centered at the current location
    shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.setColor(BASE_UNIT_COLOR);

    shapeRenderer.identity();//from  www .  j  a va 2  s. c o m

    shapeRenderer.translate(location.x, location.y, 0.f);
    shapeRenderer.rotate(0f, 0f, 1f, rotation);

    shapeRenderer.triangle(points[0].x, points[0].y, points[1].x, points[1].y, points[2].x, points[2].y);

    // draw in health missing, break down large triangle into three smaller ones
    shapeRenderer.setColor(BASE_UNIT_DAMAGED_COLOR);

    if (percentHealthMissing > 0.0f) {

        // draw 1 / 3, MAB
        percentToDraw = MathUtils.clamp(percentHealthMissing / 0.33f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, points[0].x, points[0].y,
                points[0].x + (Math.abs(points[0].x - points[1].x) * percentToDraw),
                points[0].y - (Math.abs(points[0].y - points[1].y) * percentToDraw));

        // draw 2 / 3, MBC
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.33f) / 0.33f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, points[1].x, points[1].y, points[1].x - (points[1].x * percentToDraw * 2),
                points[2].y);

        // draw 3 / 3, MCA
        percentToDraw = MathUtils.clamp((percentHealthMissing - 0.66f) / 0.33f, 0, 1.0f);
        shapeRenderer.triangle(0, 0, points[2].x, points[2].y,
                points[2].x + (Math.abs(points[2].x - points[0].x) * percentToDraw),
                points[2].y + (Math.abs(points[2].y - points[0].y) * percentToDraw));
    }

    shapeRenderer.identity();
}

From source file:net.noviden.towerdefense.UnitFactory.Unit.java

License:Open Source License

public void draw(ShapeRenderer shapeRenderer) {
    // draw each unit's health as a percent of its circle
    float percentHealthMissing = (1.0f - this.health / this.maxHealth);
    float degrees = percentHealthMissing * 360.0f;

    shapeRenderer.setColor(BASE_UNIT_COLOR);
    shapeRenderer.circle(location.x, location.y, BASE_RADIUS);

    if (percentHealthMissing > 0.0f) {
        shapeRenderer.setColor(BASE_UNIT_DAMAGED_COLOR);
        shapeRenderer.arc(location.x, location.y, BASE_RADIUS, rotation, degrees);
    }//from ww w.j  a  v a2s  . c  o m
}