¿Cómo crear grupos en libGdx?


8

¿Puede alguno de ustedes demostrar un ejemplo simple sobre cómo usar grupos en libGdx? así que si muevo al padre, todos los niños se moverán con él y lo mismo ocurre con la rotación y el escalado.

Busqué tutoriales y ejemplos en línea, pero parece que la última versión de libGdx hizo algunos cambios en la clase Stage.

Gracias


¿Usando stage2d o haciéndolo desde cero?
Gustavo Maciel

usando stage2d, supongo: p? es la mejor manera ¿verdad?
alaslipknot

Lo mejor es subjetivo, para mí, hacerlo desde cero es mejor (porque tengo mucho control de ello), para otros, stage2D puede ser mejor, por lo que no tienen que molestarse demasiado o pueden integrarse con otros Características de Stage2D.
Gustavo Maciel

De todos modos, no sé cómo hacerlo con Stage2D: P
Gustavo Maciel

lol no hay problema, encontré una solución ahora ^^ thnx de todos modos: D
alaslipknot

Respuestas:


5

Esto es exactamente lo que necesitaba tener, esta clase permite crear 3 imágenes y rotarlas ya que son un solo objeto, gracias a todos por sus aportes.

public class LearnGdx extends ApplicationAdapter {

    public static final int WIDTH = 800;
    public static final int HEIGHT = 480;

    private Stage stage;
    private Group group;

    private float rotSpeed = 5;

    @Override
    public void create() {

        // Create a stage
        stage = new Stage(new StretchViewport(WIDTH, HEIGHT));

        // Create a group and add it to the stage.
        group = new Group();
        stage.addActor(group);

        // Create images and add them to the group.
        final Texture region = new Texture(Gdx.files.internal("circle.png"));
        Image img = new Image(region);
        Image img2 = new Image(region);
        Image img3 = new Image(region);

        img2.setColor(new Color(1, 0, 0, 1));
        img3.setColor(new Color(0, 0, 1, 1));

        group.addActor(img2);
        group.addActor(img3);
        group.addActor(img);

        // Images are positioned relative to the group...
        img.setPosition(0, 0);
        img2.setPosition(img.getWidth()/2, 0);
        img3.setPosition(-img.getWidth()/2, 0);

        // Group is positioned relative to the stage...
        group.setPosition(WIDTH / 2 - img.getWidth() / 2,
            HEIGHT / 2 - img.getHeight() / 2);
        group.setOrigin(img.getWidth()/2,img.getHeight()/2);

    }

    @Override
    public void render() {
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        stage.act(Gdx.graphics.getDeltaTime());
        stage.draw();

        if (Gdx.input.isKeyPressed(Keys.LEFT)) {
            group.rotateBy(rotSpeed);
        }
        if (Gdx.input.isKeyPressed(Keys.RIGHT)) {
            group.rotateBy(-rotSpeed);
        }
    }
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.