gpt4 book ai didi

java - 加载图像 libgdx

转载 作者:太空宇宙 更新时间:2023-11-04 15:07:36 26 4
gpt4 key购买 nike

所以我有两个独立的程序,但我在一个程序上加载图像时遇到问题,而在另一个程序上则无法加载图像。

在第一个图像中,我将图像作为纹理加载到 mainGameScreen.java 中,大小为 800x480 像素。

Texture img1;
img1= new Texture(Gdx.files.internal("bg1.png"));

加载完全没有问题

所以第一个问题为什么一个加载而另一个不加载,即使第一个只是第二个的横向版本。

在我的第二个程序中,我有一个 480x800 的图像。然而我在 Images.java 中加载它。

public class Images{
public static Texture img2;
public static void load(){
img2 = new Texture (Gdx.files.internal("bg2.PNG"))

它会引发错误纹理宽度和高度必须是 2 的幂

但是,如果我将图像的大小更改为 512x512,那么它不会引发任何错误,但在渲染它时,我会得到一个空白屏幕,其中有某种静态颜色穿过它。

然后在我的 MyRenderer.java 文件中,我有一个批处理,我将其绘制到我的批处理中。

public class MyRenderer{
OrthographicCamera camera;
public MyRenderer(){
camera = new OrthographicCamera();
camera.position.set(0, 0, 0);

public void update;
camera.update();
batch.SetProjectionMatrix(camera.combined)
batch.begin();
batch.draw(Images.img2, 0, 0);
batch.end ();

最佳答案

如果您使用 OpenGl ES 1 和 1.x,则图像应该是 2 的幂,您可以在桌面或 android 配置中将 openGLES2 设置为 true,这假设您要从 android 2.3 开始使用,但对于较旧的是 ES 1.x 和 2 的幂,所以我建议您使用 GLES 2,因为在不久的将来,新的 libgdx 可能会删除旧的 GLES。

首先确保在 dispose() 上处置 SpriteBatch 和纹理,将 dispose() 方法添加到您的 Images 类并处置所有纹理,因为您使用的是静态图像,所以整个类中有一个纹理,因此删除静态并使用字段,第二我建议您使用 Sprite 来轻松控制图像并使用批处理来渲染该 sprite。第三,您在一个类中使用静态图像,我认为这不好,请使用私有(private)字段作为纹理。

另一个建议是使用 Game 和 Screen 来更好地管理不同级别。

关于java - 加载图像 libgdx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21784173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com