我正在尝试使用 SFML 为我的游戏制作 gui,因此建议使用 glpush 和 pop 状态。并输入我的命令以在 push 和 pop 之间绘制 gui。所以这就是我所拥有的:
void Engine::run()
{
while (App.isOpen())
{
while (c_FPSClock.getElapsedTime().asSeconds() < 1.f/60)
{
}
// Set the active window before using OpenGL commands
// It's useless here because active window is always the same,
// but don't forget it if you use multiple windows or controls
App.setActive();
App.pushGLStates();
App.draw(text);
App.popGLStates();
// Clear color and depth buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
getInput();
update();
render();
App.display();
}
}
但这让我的游戏变得非常糟糕:
- The input isn't working like before at all
- The player is rendering below the map
我要做的就是在屏幕底部绘制一些文本以显示健康状况和一个矩形!哈哈。
我也在控制台中收到这些错误
RenderTarget.cpp <255> 中的内部 OpenGL 调用失败:GL_INVALID_OPERATION,当前状态下不允许指定的操作
游戏使用 C++ OpenGL 和 SFML 构建,用于渲染窗口和 gui