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