简体   繁体   中英

SFML won't open a window?

So, as the title suggests, I am trying to create a simple Window using SFML 1.6 in CodeBlocks (MinGW v.4.7.0) on Windows 7 (no, I'm not using an ATI GPU).

This is the code:

#include <SFML/Window.hpp>

int main()
{
    sf::Window App(sf::VideoMode(800, 600, 16), "SFML Window");
    App.Display();

    return 0;
}

Whenever I try to run this code, it just says Program.exe is not responding and has to be shutdown using Close this program . The funny thing is, the first tutorial offered on the SFML tutorial website (the one utilizing sf::Clock in a console) works, so the libraries are loaded properly.

Can someone help me find the cause of the error I'm getting?

Other than the crash, I get no compiler or application errors.

The problem is that you haven't created the main loop which polls for events and handles OS messages. Append this to main() (yes, this is a snippet from the SFML documentation):

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();
}

It is therefore not necessary for you to call App.Display() after you create the window.

For those who want the whole thing, this is a snippet extracted from the SFML website .

#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;
}

You will get:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM