C++ SFML赢得';我不能打开窗户吗?
因此,正如标题所示,我试图在Windows 7上使用代码块中的SFML 1.6(MinGW v.4.7.0)创建一个简单窗口(不,我没有使用ATI GPU) 代码如下:C++ SFML赢得';我不能打开窗户吗?,c++,c,sfml,C++,C,Sfml,因此,正如标题所示,我试图在Windows 7上使用代码块中的SFML 1.6(MinGW v.4.7.0)创建一个简单窗口(不,我没有使用ATI GPU) 代码如下: #include <SFML/Window.hpp> int main() { sf::Window App(sf::VideoMode(800, 600, 16), "SFML Window"); App.Display(); return 0; } #包括 int main() {
#include <SFML/Window.hpp>
int main()
{
sf::Window App(sf::VideoMode(800, 600, 16), "SFML Window");
App.Display();
return 0;
}
#包括
int main()
{
sf::Window应用程序(sf::VideoMode(80060016),“SFML窗口”);
App.Display();
返回0;
}
每当我试图运行此代码时,它只会说Program.exe没有响应
,必须使用关闭此程序
将其关闭。有趣的是,SFML教程网站上提供的第一个教程(在控制台中使用sf::Clock
的教程)可以正常工作,因此可以正确加载库
有人能帮我找到错误的原因吗
除了崩溃之外,我没有发现任何编译器或应用程序错误。问题在于您没有创建用于轮询事件和处理操作系统消息的主循环。将其附加到
main()
(是的,这是SFML文档中的一个片段):
因此,在创建窗口后,您无需调用
App.Display()
。问题在于您尚未创建轮询事件和处理操作系统消息的主循环。将其附加到main()
(是的,这是SFML文档中的一个片段):
因此,在创建窗口后,您无需调用
App.Display()
。对于那些想要全部内容的人,这是从中提取的片段
#包括
int main()
{
窗口窗口(sf::视频模式(800600),“SFML窗口”);
//只要窗口打开,就运行程序
while(window.isOpen())
{
//检查自上次循环迭代以来触发的所有窗口事件
sf::事件;
while(window.pollEvent(事件))
{
//“请求关闭”事件:我们关闭窗口
如果(event.type==sf::event::Closed)
window.close();
}
}
返回0;
}
您将获得:
对于那些想要全部东西的人来说,这是从
#包括
int main()
{
窗口窗口(sf::视频模式(800600),“SFML窗口”);
//只要窗口打开,就运行程序
while(window.isOpen())
{
//检查自上次循环迭代以来触发的所有窗口事件
sf::事件;
while(window.pollEvent(事件))
{
//“请求关闭”事件:我们关闭窗口
如果(event.type==sf::event::Closed)
window.close();
}
}
返回0;
}
您将获得:
不相关,但如果你刚开始,你可能应该更新到SFML 2.0.Oh,上面说1.6是当前版本,所以我就用了。不相关,但如果你刚开始,你可能应该更新到SFML 2.0.Oh,上面说1.6是当前版本,所以我就用了。上面说“sf::Window未定义”,之后就没有骰子了,甚至在删除它之后。为了解决这个问题,我必须自己编译libs。说“sf::Window未定义”,之后就没有骰子了,即使在删除它之后。为了解决这个问题,我必须自己编译libs。
while (App.IsOpened())
{
// Process events
sf::Event Event;
while (App.GetEvent(Event))
{
// Close window : exit
if (Event.Type == sf::Event::Closed)
App.Close();
}
// Clear the screen
App.Clear();
// Put your update and rendering code here...
// Update the window
App.Display();
}
#include <SFML/Window.hpp>
int main()
{
sf::Window window(sf::VideoMode(800, 600), "SFML Window");
// run the program as long as the window is open
while (window.isOpen())
{
// check all the window's events that were triggered since the last iteration of the loop
sf::Event event;
while (window.pollEvent(event))
{
// "close requested" event: we close the window
if (event.type == sf::Event::Closed)
window.close();
}
}
return 0;
}