好的。我是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
)
答案 0 :(得分:1)
如错误消息中所述gluPerspective
不是类GLU
的静态方法,这意味着您需要GLU
对象来调用它:
GLU glu = new GLU();
glu.gluPerspective(80, 4/3, 0.1, 10000);
中也对此进行了解释
要使用GLU,只需通过新的GLU()实例化GLU对象 你的计划的开始。可以调用GLU对象上的方法 在OpenGL上下文是最新的任何时候。因为GLU 实现不是线程安全的,应该创建一个GLU对象 对于每个执行OpenGL渲染的GLEventListener或其他实体 在一个给定的线程中。