【问题标题】:JOGL - open GL - keeping part of the world stationary while moving the restJOGL - 开放式 GL - 保持世界的一部分静止而移动其余部分
【发布时间】:2011-04-27 19:09:10
【问题描述】:

我是 JOGL 的新手,我正在开发一款游戏。我有火箭、背景中的星星和行星。我希望火箭在屏幕底部保持静止,按下 GO 按钮,然后行星开始下降让火箭避开。

我一直打下去,行星下降(通过翻译),火箭也下降。我知道为什么会在相机移动时发生这种情况,所以整个世界都在移动。我一直在尝试使用 pushMatrix 和 popMatrix,但没有任何运气。

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();  
}

我在opengl中尝试做的事情可能吗?我是不是太难了?

【问题讨论】:

    标签: java opengl camera jogl


    【解决方案1】:

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

    顺便说一句,投影矩阵不打算用于空间变换。请改用 GL_MODELVIEW 来避免后续出现的细微问题。

    【讨论】:

      【解决方案2】:

      不完全是您问题的答案,但如果您想用 Java 中的 opengl 制作游戏,您应该查看 JMonkeyEngine。

      http://jmonkeyengine.com/

      你想要做的事情当然可以用 opengl 来做,而且用 JMonkeyEngine 做起来也相当容易。他们的网站上有很多教程等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多