1

テクスチャが正しくロードされていません。線があり、後方にあります。なにが問題ですか。編集:私はいくつかの無関係なコードを切り取ったので、いくつかのものが奇妙に見えるかもしれません。

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を使用しているだけですが、もっと簡単な方法があります。

これが出てくるものです。http://i.imgur.com/t7yvz.pngボタンには「STR」というラベルが付いているか、少なくともそうする必要があります。そして、右上のそれらの線は何ですか?!

4

2 に答える 2

1

に変更してみてください

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);

しかし、あなたのコードをよく見ていない。

于 2012-02-22T09:42:03.457 に答える
1

テクスチャの幅と高さの両方のサイズが、64x32、16x16、512x1024... (1、2、4、8、16、32、64、128、256、512、1024、 2048、4096、8192、16384、65536、....)

注: テクスチャ ファイルはこれらの寸法である必要がありますが、任意のサイズでレンダリングできます

于 2013-12-26T01:58:27.943 に答える