-3
我做了一些代碼,每次我的代碼在我的關卡圖像中遇到一個白色像素時,都會生成一些代碼。但是,它似乎並不奏效。它只有在我註釋掉圖像部分的實際加載時纔有效。爲什麼我無法從OpenGL中的圖像文件加載矩形?
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(-5, 5, -5, 5, -20, 20);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
float camPosX=0, camPosY=0;
for(int i=0;i<level.getWidth();i++){
for(int j=0;j<level.getHeight();j++){
if(level.getRGB(i, j)==Color.red.getRGB()){camPosX=i;camPosY=j;}
}
}
System.out.println("Camera position is "+camPosX+", "+camPosY);
int x=0;
while (!Display.isCloseRequested()) {
Display.sync(60);
//poll for keypresses first, default key is 'forward'
if(Keyboard.isKeyDown(Keyboard.KEY_NUMPAD8));
GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT|GL11.GL_COLOR_BUFFER_BIT);
//GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glColor3f(0, 0, 0);
for(int i=0;i<level.getWidth();i++){
for(int j=0;j<level.getHeight();j++){
if(level.getRGB(i, j)==Color.WHITE.getRGB()){
GL11.glTranslatef(-i, 0, -j);
GL11.glRotatef(45, 1, 1, 1);
GL11.glBegin(GL11.GL_QUADS);
GL11.glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red
GL11.glVertex3f(0.5f, 0.5f, 0.5f); // Top Right Of The Quad (Front)
GL11.glVertex3f(-0.5f, 0.5f, 0.5f); // Top Left Of The Quad (Front)
GL11.glVertex3f(-0.5f,-0.5f, 0.5f); // Bottom Left Of The Quad (Front)
GL11.glVertex3f(0.5f,-0.5f, 0.5f); // Bottom Right Of The Quad (Front)
GL11.glVertex3f(0.5f,-0.5f,-0.5f); // Bottom Left Of The Quad (Back)
GL11.glVertex3f(-0.5f,-0.5f,-0.5f); // Bottom Right Of The Quad (Back)
GL11.glVertex3f(-0.5f, 0.5f,-0.5f); // Top Right Of The Quad (Back)
GL11.glVertex3f(0.5f, 0.5f,-0.5f); // Top Left Of The Quad (Back)
GL11.glVertex3f(-0.5f, 0.5f, 0.5f); // Top Right Of The Quad (Left)
GL11.glVertex3f(-0.5f, 0.5f,-0.5f); // Top Left Of The Quad (Left)
GL11.glVertex3f(-0.5f,-0.5f,-0.5f); // Bottom Left Of The Quad (Left)
GL11.glVertex3f(-0.5f,-0.5f, 0.5f); // Bottom Right Of The Quad (Left)
GL11.glVertex3f(0.5f, 0.5f,-0.5f); // Top Right Of The Quad (Right)
GL11.glVertex3f(0.5f, 0.5f, 0.5f); // Top Left Of The Quad (Right)
GL11.glVertex3f(0.5f,-0.5f, 0.5f); // Bottom Left Of The Quad (Right)
GL11.glVertex3f(0.5f,-0.5f,-0.5f); // Bottom Right Of The Quad (Right)
GL11.glEnd();
GL11.glLoadIdentity();
}
}
}
GL11.glTranslatef(-camPosX, 0, -camPosY);
Display.update();
}
它仍然沒有正常顯示(仍然是黑屏),但我很高興這些問題得到解決。謝謝! – striking