Libgdx 和 Android 应用。将图像作为背景。

6

我是新手,刚开始使用libgdx。我想知道如何在我的游戏中将image.png作为背景,并以960x640的分辨率显示?这可行吗?感谢建议和容忍。也许你有一个简单的教程?

这是我的渲染类:

public void render() {

     texture = new Texture(Gdx.files.internal("E:/background.png"));

     Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 
     batch.begin();
     batch.draw(texture, 0, 0);
     batch.end();
}

第二个问题。我需要插入两个活动图片,活动是指当我点击那张图片时,下一张图片会显示在屏幕上。我希望在我点击图片时实现操作。

2个回答

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

我遇到了错误:纹理的宽度和高度必须是2的幂次方:960x640。 - edi233
15
您可以通过覆盖Texture类中的2次幂检查来解决此问题。在您的主create()方法开头,添加以下代码:Texture.setEnforcePotImages(false); 该代码将禁用对纹理图片是否为2的幂次方的检查。 - Shinzul
1
我没有看到任何性能或兼容性影响。我怀疑这可能是在旧设备上出现的问题,这些设备具有仅支持OpenGL 1.0的旧GPU。我不完全确定,因为我没有在无法运行的设备上进行测试... - Shinzul

0

首先,您需要设置视口,在create方法中执行此操作。

`float scrw = 960; float scrh = 640;

    camera = new OrthographicCamera();
    camera.viewportHeight = scrh;
    camera.viewportWidth = scrw;

    camera.position.set(camera.viewportWidth * .5f,
            camera.viewportHeight * .5f, 0f);
    camera.update();`

创建纹理 texture = new Texture("data/background.png"); 像这样将纹理放入精灵中 sprite=new sprite(texture); 然后像这样设置大小

sprite.setsize(960,640);

在您的渲染方法之间的batch.begin和batch.end之间绘制它。

sprite.draw(batch);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接