【问题标题】:LWJGL doesnt draw outside Display ModeLWJGL 不在显示模式之外绘制
【发布时间】:2013-11-30 14:03:15
【问题描述】:

当我尝试将 opengl 四边形移动到主窗口大小之外时,它不会呈现。

假设我有一个 600x800 的窗口。然后我将其调整为全屏。一旦我将四边形(播放器)移到定义的窗口属性之外,它就会消失。 我认为这是必不可少的,因为我正在开发一个自上而下的 RPG,他将在 x 和 y 平面上移动。此外,如果这还不够,我将如何制作一个让玩家保持在中心的相机...... 到目前为止我有

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, 845, 0, 520, -1, 1);
    glMatrixMode(GL_MODELVIEW);

由于第一个问题,我无法测试它

【问题讨论】:

  • 能否包含在将窗口大小调整为全屏时实际使用的代码?除了改变投影矩阵,还需要设置视口。视口会限制东西投影到的窗口区域,通常在调整窗口大小时需要同时设置投影矩阵和视口。事实上,设置视口是这两个操作中更重要的一个,因为有时您不想更改投影坐标,但您肯定希望将所有内容投影到整个窗口上。

标签: java opengl game-engine lwjgl


【解决方案1】:

在将相机保持在中心的部分。只需将所有 -x, -y 相对于相机/玩家的位置进行平移。

    glTranslatef(-cameraX, -cameraY, 0);

因此,当您移动玩家时,请更改玩家的位置并以相反的方式平移所有内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    相关资源
    最近更新 更多