【问题标题】:Trouble with slick.util and lwjgl texturesslick.util 和 lwjgl 纹理的问题
【发布时间】:2015-05-14 02:10:35
【问题描述】:

所以我最近开始使用 jlwgl 和 slick-util 制作一个简单的 2-D java 游戏。我在尝试加载纹理以放置在我的瓷砖上时遇到了问题。我正在使用 slick util 来尝试加载纹理。这是我正在使用的方法。

 public static Texture loadTex(String path, String fileType) {
    Texture tex = null;
    InputStream in = ResourceLoader.getResourceAsStream(path);

    try {
        tex = TextureLoader.getTexture(fileType, in);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return tex;
}

然后我设置一个变量“t”来存储一个变量来检查纹理加载是否有效。

     Texture t = loadTex("res/grass64.png","PNG");

我使用 glQUADS 方法来绘制一个有纹理的正方形。

public static void drawQuadTex(Texture tex, float x, float y, float width,
        float height) {
    tex.bind();
    glTranslatef(x, y, 0);

    glBegin(GL_QUADS);
    glTexCoord2f(0, 0);
    glVertex2f(0, 0);
    glTexCoord2f(1, 0);
    glVertex2f(width, 0);
    glTexCoord2f(1, 1);
    glVertex2f(width, height);
    glTexCoord2f(0, 1);
    glVertex2f(0, height);
    glLoadIdentity();
    glEnd();
}

正在调用 drawQuadTex...

drawQuadTex(t,0,0,64,64);

我遇到了一个错误:

“线程“main”中的异常 java.lang.NoSuchMethodError: org.lwjgl.opengl.GL11.glGetInteger(ILjava/nio/IntBuffer;)V "

我不确定到底发生了什么。任何帮助将不胜感激,因为这是我第一次尝试任何不是简单的学校作业的 java。如果我需要发布任何其他内容,请告诉我。

【问题讨论】:

    标签: java opengl textures lwjgl slick2d


    【解决方案1】:

    slick-util 库是 slick2d 的一部分,现在已弃用,并且不再与最近的 LWJGL 版本(例如您正在使用的版本)兼容。这就是您收到此错误的原因。

    【讨论】:

    • 是否有任何其他库或内置方法可以为 lwjgl 加载纹理资源?
    • 制作你自己的纹理加载器,如果你使用 Java 的内置 API 很容易:ImageIO.read(file) 然后,使用BufferedImage.getRGB() 从返回的 BufferedImage 中获取数据并将其存储在一个整数数组中.然后,您几乎可以使用标准的 OpenGL 方式来生成几乎可以在任何地方找到的纹理。整数数组包含可以通过 IntBuffer 发送到 OpenGL 的数据。
    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 2014-11-22
    • 2021-07-16
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    相关资源
    最近更新 更多