我试图使用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中的内部OpenGL调用失败&lt; 255&gt; :GL_INVALID_OPERATION,在当前状态下不允许指定的操作
游戏使用C ++ OpenGL和SFML构建,以渲染窗口和gui