1

这是有问题的代码:

glColor3f(1,1,1);
for(int x=0;x<125;x++){
    for(int y=0;y<10;y++){

        int p = levelArray[x][y];
        if(p == 0){
            break;
        }
        Texture t = pieces[1];
        t.bind();
        System.out.println(x*64+"|"+y*64 + " :: "+((x*64)+t.getTextureWidth())+"|"+((y*64)+t.getTextureHeight()));
        glBegin(GL_QUADS);
            glTexCoord2f(0,0);
            glVertex2f(x*64,y*64);
            glTexCoord2f(1,0);
            glVertex2f((x*64)+t.getTextureWidth(),y*64);
            glTexCoord2f(1,1);
            glVertex2f((x*64)+t.getTextureWidth(),(y*64)+t.getTextureHeight());
            glTexCoord2f(0,1);
        glEnd();    
    }
}

我得到了一个打印输出,所以我到达了 glBegin,我获取了打印输出的样本坐标,并使用完全相同的纹理在此处显示的第一个线上方绘制了该四边形,并进行渲染。

4

1 回答 1

3

您只有三个 glVertex2f 调用,而应该有四个(在 GL_QUADS 内)。你有四个 glTexCoord2f,所以这在你的代码中必须是一个类型-o。

于 2012-06-10T20:48:11.597 回答