Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOGL-OpenGL-保持世界的一部分静止,同时移动其余部分_Java_Opengl_Camera_Jogl - Fatal编程技术网

Java JOGL-OpenGL-保持世界的一部分静止,同时移动其余部分

Java JOGL-OpenGL-保持世界的一部分静止,同时移动其余部分,java,opengl,camera,jogl,Java,Opengl,Camera,Jogl,我对慢跑有点陌生,我正在做一个游戏。我有一个火箭,背景是星星,还有行星。我希望火箭在屏幕底部保持静止,按下GO按钮,然后行星开始下落,让火箭避开 我一直以击打围棋结束,行星(通过平移)落下,火箭也落下。我知道为什么摄像机在移动,所以整个世界都在移动。我一直在尝试使用pushMatrix和popMatrix,但没有任何运气 i、 e 我尝试在opengl中做的事情可能吗?我让它变得太难了吗?这不完全是对你问题的回答,但是如果你想用Java的opengl制作一个游戏,你应该看看JMonkeyEngi

我对慢跑有点陌生,我正在做一个游戏。我有一个火箭,背景是星星,还有行星。我希望火箭在屏幕底部保持静止,按下GO按钮,然后行星开始下落,让火箭避开

我一直以击打围棋结束,行星(通过平移)落下,火箭也落下。我知道为什么摄像机在移动,所以整个世界都在移动。我一直在尝试使用pushMatrix和popMatrix,但没有任何运气

i、 e


我尝试在opengl中做的事情可能吗?我让它变得太难了吗?

这不完全是对你问题的回答,但是如果你想用Java的opengl制作一个游戏,你应该看看JMonkeyEngine


您尝试使用opengl做的事情当然是可能的,而且使用JMonkeyEngine做起来相当容易。他们的网站上有很多教程等。

与其依赖投影矩阵来保存火箭位置的状态,不如将这些信息存储在自己的代码中,然后将绝对坐标传递给JOGL?然后更新一个对象的位置可以用一个更明显的代码来完成,比如
rocket.y+=dy

另外,投影矩阵不打算用于空间变换。使用GL_MODELVIEW来避免出现一些微妙的问题

if (goButtonPressed)  
{
    //gl.glTranslatef(0.0f,0.3f,0f);   // this line just keeps the whole thing still  
    drawRocket(gl);                    // I was trying to 'undo' the translation  
    gl.glPushMatrix();  
    gl.glMatrixMode(GL.GL_PROJECTION);  
    gl.glTranslatef(0.0f, -0.3f, 0f);  
    gl.glPopMatrix();  
}