好吧,我尝试按tutorial所示完成所有操作,但它只显示控制台,仅此而已。试过这个时钟程序,它工作得很好。我连接了所有的libs,并复制了所有.dll文件,所以真的不知道我哪里错了。请告诉我该怎么做以显示它显示窗口。我正在使用VS2010,SFML 1.6,这是我的代码。
#include <SFML\Window.hpp>
int main()
{
sf::Window App(sf::VideoMode(640, 480, 32), "wut");
while (App.IsOpened())
{
sf::Event Event;
while (App.GetEvent(Event))
{
// Window closed
if (Event.Type == sf::Event::Closed)
App.Close();
// Escape key pressed
if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape))
App.Close();
};
App.Display();
}
};
答案 0 :(得分:0)
试试这个:
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
int main()
{
// Create the main rendering window
sf::RenderWindow App(sf::VideoMode(800, 600, 32), "SFML Graphics");
// Start game loop
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 (fill it with black color)
App.Clear();
// Display window contents on screen
App.Display();
}
return EXIT_SUCCESS;
}
答案 1 :(得分:0)
你链接到sfml-main库吗?如果没有,请尝试,如果失败,请尝试执行WinMain而不是main()函数。另外,请确保Visual Studio未将项目设置为控制台程序。
答案 2 :(得分:0)
我最近一直在使用SFML。按顺序尝试这些建议,保留之前的每个更改:
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
它应该是sf :: RenderWindow,而不是sf :: Window
它应该是while (App.isOpen())
而不是IsOpened()
如果它似乎没有你的RenderWindow上的函数“isOpen”,你可能没有SFML2,我建议立即获取。
您是否为您的计算机重建了库,或者您是否尝试使用它们提供的.dll?您可能需要使用Cmake重建它们,无论您的编译器是什么。我知道我做了。
最后,我还建议使用最新的Code :: Blocks作为您的IDE,但我想只能作为最后的手段。