java - 纹理未正确加载 slick java

标签 java window lwjgl slick2d

纹理未正确加载,它有线条并且是向后的。怎么了。 编辑:我删除了一些不相关的代码,所以有些事情可能看起来很奇怪。

package package01;


import java.io.IOException;
import org.lwjgl.opengl.GL11;
import org.newdawn.slick.opengl.Texture;
import org.newdawn.slick.opengl.TextureLoader;
import org.newdawn.slick.util.ResourceLoader;


public class Graph {

    ...

public void initGraph(){

    ... 


        Texture strbutton,defbutton,vitbutton,intbutton,dexbutton,agibutton;
        try {
            strbutton = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("/res/grphbuttons/strbutton.png"));
            GL11.glEnable(GL11.GL_TEXTURE_2D);
            strbutton.bind();
        GL11.glBegin(GL11.GL_QUADS);
            GL11.glTexCoord2f(0,0);
            GL11.glVertex2f(70,120);
            GL11.glTexCoord2f(0,1);
            GL11.glVertex2f(70,120+strbutton.getImageHeight());
            GL11.glTexCoord2f(1,1);
            GL11.glVertex2f(70+strbutton.getImageWidth(),120+strbutton.getImageHeight());
            GL11.glTexCoord2f(1,0);
            GL11.glVertex2f(70+strbutton.getImageWidth(),120);

        GL11.glEnd();
            GL11.glDisable(GL11.GL_TEXTURE_2D);
        } catch (IOException e) {
            e.printStackTrace();
        }

    ...

    }
}

这是主类

package package01;

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;

public class DisplayScreen {
CharCreateScreen ccs = new CharCreateScreen();


void start(){
    initGL(1000,562);

    while(!Display.isCloseRequested()){
        ccs.openccscreen();
        Display.update();


    }
    Display.destroy();
}
void initGL(int width, int height){
    try {
        Display.setDisplayMode(new DisplayMode(1000,562));
        Display.create();
        Display.setVSyncEnabled(true);
    } catch(LWJGLException e) {
        e.printStackTrace();
        System.exit(0); 
    }

    GL11.glClearColor(0.9f, 0.9f, 1.0f, 0.0f);


    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glLoadIdentity();
    GL11.glOrtho(-500, 500, -281, 281, -1, 1);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
}


public static void main(String[] args){

    DisplayScreen ds = new DisplayScreen();
    ds.start();

}
}

我在加载纹理到 slick 时一直遇到问题,这次是什么问题?我不能只加载图像并将其放在屏幕上而不将这种奇怪的应用到纹理吗?我只是使用 slick 来上传一些图像以用作按钮,有没有更简单的方法。

结果如下。 http://i.imgur.com/t7yvz.png该按钮标有“STR”,或者至少应该如此。顶部和右侧的那些线是什么?!

最佳答案

尝试将其更改为

GL11.glTexCoord2f(0,0);
GL11.glTexCoord2f(1,0);
GL11.glTexCoord2f(1,1);
GL11.glTexCoord2f(0,1);

来自

GL11.glTexCoord2f(0,0);
GL11.glTexCoord2f(0,1);
GL11.glTexCoord2f(1,1);
GL11.glTexCoord2f(1,0);

虽然没有仔细查看您的代码。

关于java - 纹理未正确加载 slick java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8958436/

相关文章:

java - 在 Robotium 中进行单元测试时检查 WebView 的 URL

objective-c - QInputDialog 类似于 Cocoa/Xcode 中的东西?

javascript - 覆盖 window.alert 并传递多个参数

java - 在 GLSL 中整数都是 0

java - 如何使子弹向 3 维空间中的一个点移动

java - 通过超链接从 jsp 向 servlet 传递值

java - 在 fragment 中使用对话框

java - 如何在没有请求的 servlet 的情况下在 jsf 托管 bean 中获取请求 url?

CSS - 使重复的背景图像拉伸(stretch)到浏览器窗口大小

java - 如何将 opengl 显示附加到 JFrame 并正确处理它?