gpt4 book ai didi

java - libgdx 无法将纹理加载到数组

转载 作者:行者123 更新时间:2023-11-30 02:53:44 24 4
gpt4 key购买 nike

使用 libgdx,我正在创建一个 2D 游戏。我想将所有纹理加载到一个数组中。所以我为他们创建了一个类(class)。我想在 render() 中循环图像数组:

public class LoadingImages {
public Texture[] images;

public area1() {
images[0] = new Texture(Gdx.files.internal("img/image1.jpg"));
}
}

当我尝试运行它时,这给了我一个错误:

Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.mygame.game.LoadingImages.loading(LoadingImages.java:31)

图像数量将根据区域而变化。

最佳答案

另请参阅What is a NullPointerException, and how do I fix it? .

您正在尝试访问尚未分配的变量:images[0]。在使用数组中的第一个元素之前,您必须创建一个大小至少为 1 的数组。因此,将其更改为:

public *void* area1() {
images = new Texture[1];
images[0] = new Texture(Gdx.files.internal("img/image1.jpg"));
}

话虽如此,您的异常与您的代码不匹配。另外,您可能需要重新考虑您的方法,使用许多纹理会很快影响性能,因为这意味着刷新批处理。最好将图像打包到单个纹理中。如果您想通过索引访问图像,那么这仍然是可能的。 See this .

此外,AssetManager 比手动加载所有资源要方便得多。 See this .

关于java - libgdx 无法将纹理加载到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37862604/

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