Exception in thread "main" java.lang.NullPointerException >>at org.lwjgl.-6ren">
gpt4 book ai didi

java - "GL11.glMatrixMode()"问题

转载 作者:行者123 更新时间:2023-11-29 05:58:53 25 4
gpt4 key购买 nike

我收到 0 个错误,但我在控制台中得到了这个:

>Exception in thread "main" java.lang.NullPointerException
>>at org.lwjgl.opengl.GL11.glMatrixMode(GL11.java:2052)
>>>at game.engine.GameLoop.start(GameLoop.java:22)
>>>>at game.engine.GameLoop.main(GameLoop.java:15)

我试图将实际值放入“glMatrixMode()”而不是“GL11.GL_PROJECTION”,但它返回相同的异常。

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


public class GameLoop
{
//Main
public static void main(String[] argv)
{
GameLoop.start();
}

//Metodo che gestisce il loop
public static void start()
{
//Inizializzazione OpenGL
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, 800, 600, 0, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

try
{
Display.setDisplayMode(new DisplayMode(800, 600));
Display.create();
} catch (LWJGLException e)
{
e.printStackTrace();
System.exit(0);
}

while(!Display.isCloseRequested())
{
Entità.pulisci();
Entità.colora();
Entità.disegna();
Display.update();
}
}

}




import org.lwjgl.opengl.GL11;

public class Entità
{
//Disegna un poligono
public static void disegna()
{
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2f(100,100);
GL11.glVertex2f(200,100);
GL11.glVertex2f(200,200);
GL11.glVertex2f(100,200);
GL11.glEnd();
}

//Pulisce il buffer
public static void pulisci()
{
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
}

//Setta il colore al poligono
public static void colora()
{
GL11.glColor3f(0.5f,0.5f,1.0f);
}

}

最佳答案

我对 Java 或 LWJGL 没有任何经验,但从您的代码来看似乎

Display.setDisplayMode(new DisplayMode(800, 600));
Display.create();

创建实际的显示 Canvas (或者您可以调用它),它还设置了 OpenGL 上下文。因此,在这些函数之前调用任何 OpenGL 函数(如 GL11.glMatrixMode)可能会导致一些错误,在您的情况下会出现空指针异常。

所以尝试将这四个函数放在显示创建之后。您正在对 OpenGL 上下文进行更改,因此您首先需要一个有效的上下文。

关于java - "GL11.glMatrixMode()"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10946995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com