5

好吧,我尝试按照教程中所示做所有事情,但它只显示控制台,仅此而已。试过这个时钟程序,它工作得很好。我连接了所有库,并复制了所有 .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();

          }
     };
4

4 回答 4

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;
}
于 2012-07-31T19:03:17.097 回答
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,但我想只能在不得已的情况下切换。

于 2014-03-18T18:06:32.597 回答
0

你链接到 sfml-main 库吗?如果没有,请尝试,如果失败,请尝试执行WinMain而不是 main() 函数。此外,请确保 Visual Studio 没有将您的项目设置为控制台程序。

于 2012-11-24T21:33:57.717 回答
0

老问题..但这是我的回答:当你说;“我正在使用 VS2010,SFML 1.6...”,在下载页面中说对于 Windows 中的 sfml-1.6,可以使用 VScode 2005 和 VScode 2009。尝试使用不同版本的 Vscode(并链接所有内容测试),看看它是否有效。

(对我来说,您的代码对于 SFML-1.6 看起来不错,所以我认为这不是问题)

于 2021-11-02T16:37:24.327 回答