我试图使用GLU.gluPerspective(),但它给了我静态参考错误

时间:2017-02-04 14:49:37

标签: java lwjgl jogl

好的。我是OpenGL的新手和类似的东西。我正在使用LWJGL 3和JOGL(用于GLU),而且我在自学过程中完全停止了。现在我正试图使用​​GLU.gluPerspective(80, 4/3, 0.1, 10000);设置我的3D投影,但是它给了我Cannot make a static reference to the non-static method gluPerspective(double, double, double, double) from the type GLU - 我知道这意味着什么,但我并不完全确定为什么我得到了这个。

我从LWJGL 3的页面复制/粘贴了示例代码,以获取我的大部分代码。为了绘制立方体,我使用了我在网上找到的另一部分代码。

代码相当长,所以你可以得到它at this pastebin link.

对于上面的一点说明,第158到174行使用了我自定义的Player类和Keyboard类,它们是最小的,没有任何影响我正在做的事情来解决我的错误。

那么为什么这会给我这个错误,尽管事实上我实现了一个新的Main()?我对Java的记忆有点生疏吗? (pastebin代码为Main.java

1 个答案:

答案 0 :(得分:1)

如错误消息中所述gluPerspective不是类GLU的静态方法,这意味着您需要GLU 对象来调用它:

GLU glu = new GLU();
glu.gluPerspective(80, 4/3, 0.1, 10000);

JOGL user guide

中也对此进行了解释
  

要使用GLU,只需通过新的GLU()实例化GLU对象   你的计划的开始。可以调用GLU对象上的方法   在OpenGL上下文是最新的任何时候。因为GLU   实现不是线程安全的,应该创建一个GLU对象   对于每个执行OpenGL渲染的GLEventListener或其他实体   在一个给定的线程中。