2

我在 libGdx 中的背景有问题。我尝试用这个解决我的问题:

“在你的 create() 方法中,创建一个引用你的 image.png 的新纹理,然后使用你现有的 SpriteBatch 在 render() 循环中渲染它。在你的 GL.clear() 调用之后,立即去你的 batch.draw( backgroundTexture, 0. 0) 并确保您的相机处于 OrthographicProjection 模式。”

我这样做:

    public void render() {
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
        camera.update();
        batch.setProjectionMatrix(camera.combined);
        batch.begin();

        batch.draw(image, 250, 200);
        batch.draw(backGroundImage, 0, 0);

        batch.end();

“图像”是我的正常纹理(这是简单的图像),“背景”是 ofc。我的背景。我在我的 create() 方法中应用了“背景”。我的相机开着 camera = new OrthographicCamera();。这是我所看到的: ...我需要 10 点声望来添加图像:<...图像是在左右两侧缩短和剪切...我做错了什么。在这个解决方案上有一个链接!还有一个指向 [a panda][1] Shinzul 的参考风格链接说了一些关于 render() 中循环的内容,也许这是我的问题,但我不知道如何解决这个问题。请帮忙。

4

4 回答 4

10

我认为您应该先绘制背景图像。

此外,我认为您应该看一些教程,例如https://github.com/libgdx/libgdx/wiki/Spritebatch%2C-Textureregions%2C-and-Sprites。它解释了 libgdx 的相同基本概念。

于 2013-07-12T20:24:36.787 回答
6
    public static Texture backgroundTexture;
    public static Sprite backgroundSprite;
    private SpriteBatch spriteBatch;

    private void loadTextures() {
        backgroundTexture = new Texture("images/background.png");
        backgroundSprite =new Sprite(backgroundTexture);
        .
        .
    }

    public void renderBackground() {
        backgroundSprite.draw(spriteBatch);
    }

    public void render() {
        spriteBatch.begin();
            renderBackground(); //In first place!!!!
            drawStuff();
            drawMoreStuff();
            drawMoreMoreStuff();
        spriteBatch.end();
    }

我找到了这个在线资源并帮助我开始了 libgdx 的世界。我希望我对您有所帮助。

于 2013-12-02T14:25:44.807 回答
1

只需您可以使用Gdx设置设备高度宽度,它对我有帮助

 batch.draw(mTextureBg, 0 , 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
于 2017-10-25T06:18:59.533 回答
0

我不知道这是否是最好的方法,但它对我有用。

sprite.scale(2);
sprite.setCenter(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);

您可以更改 (int) 中的比例,直到它覆盖整个屏幕。

于 2019-02-22T16:18:41.733 回答