Search code examples
javaandroidlibgdx

libgdx - How can I create Circle class objects using for loop?


I'm creating board game and I need to draw circles for players (2-5 players). I can draw them using ShapeRenderer but then I don't have control over circles (change position, radius, etc.). So I need to create 2-5 Circle class object using for loop (I want to do it with for loop). How can I do it?

Thanks!


Solution

  • Is your Circle is required in view only or it required in model (eg. Collision detection between circles) too.

    If view only then take a circular .png image. Create Sprite or Image object and use that otherwise you can draw Circle using ShapeRenderer.

    you can change position using ShapeRender object Use this Actor with scene2d

    https://github.com/itsabhiaryan/gdx-utils/blob/master/gdx-utils/src/com/ng/gdxutils/actor/ShapeRendererActor.java

    EDIT

    public static Pixmap getPixmapCircle(int radius, Color color, boolean isFilled) {
            Pixmap pixmap=new Pixmap(2*radius+1, 2*radius+1, Pixmap.Format.RGBA8888);
            pixmap.setColor(color);
            if(isFilled)
                pixmap.fillCircle(radius, radius, radius);
            else
                pixmap.drawCircle(radius, radius, radius);
            pixmap.drawLine(radius, radius, 2*radius, radius);
            Pixmap.setFilter(Pixmap.Filter.NearestNeighbour);
            return pixmap;
    }
    
    Texture texture=new Texture(getPixmapCircle(10, Color.RED, true));
    
    Image image=new Image(texture);
    or
    Sprite sprite=new Sprite(texture);