Làm thế nào để tạo nhóm trong libGdx?


8

Có ai trong số các bạn vui lòng trình bày một ví dụ đơn giản về cách sử dụng các nhóm trong libGdx không? Vì vậy, nếu tôi di chuyển cha mẹ, thì tất cả trẻ em sẽ di chuyển với nó và cùng đi cho xoay và nhân rộng.

Tôi đã tìm các hướng dẫn và ví dụ trực tuyến nhưng có vẻ như phiên bản mới nhất của libGdx đã thực hiện một số thay đổi đối với lớp Giai đoạn.

Cảm ơn bạn


Sử dụng stage2d hoặc làm cho nó từ đầu?
Gustavo Maciel

sử dụng stage2d tôi đoán: p? Đó là cách tốt hơn phải không?
alaslipizard

Tốt nhất là chủ quan, đối với tôi, làm cho nó từ đầu là tốt hơn (vì tôi có nhiều quyền kiểm soát nó), đối với những người khác, giai đoạn 2D có thể tốt hơn, vì vậy họ không phải bận tâm với nó quá nhiều, hoặc họ có thể tích hợp với người khác Tính năng Stage2D.
Gustavo Maciel

Dù sao, tôi không biết làm thế nào để tạo ra nó với Stage2D: P
Gustavo Maciel

lol không có vấn đề gì, tôi đã tìm thấy một giải pháp ngay bây giờ ^^ thnx anyway: D
alaslipizard

Câu trả lời:


5

Đây là chính xác những gì tôi cần phải có, lớp này cho phép tạo 3 hình ảnh và xoay chúng vì chúng là một đối tượng duy nhất, cảm ơn tất cả các đầu vào của bạn.

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);
        }
    }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.