Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;sfml在窗口打开后立即接收关闭事件_C++_Xcode_Sfml - Fatal编程技术网

C++ C++;sfml在窗口打开后立即接收关闭事件

C++ C++;sfml在窗口打开后立即接收关闭事件,c++,xcode,sfml,C++,Xcode,Sfml,不过,由于某种原因,我的应用程序似乎在我的程序进入事件循环时就开始校准关闭事件 这是我的密码 #include <SFML/Graphics.hpp> #include <iostream> // Here is a small helper for you ! Have a look. #include "ResourcePath.hpp" int main() { sf::RenderWindow Window(sf::VideoMode(500,400),"SF

不过,由于某种原因,我的应用程序似乎在我的程序进入事件循环时就开始校准关闭事件

这是我的密码

#include <SFML/Graphics.hpp>
#include <iostream>

// Here is a small helper for you ! Have a look.
#include "ResourcePath.hpp"

int main()
{
sf::RenderWindow Window(sf::VideoMode(500,400),"SFML tutorial");
/* Or we can do this
 * sf::RenderWindow Window
 * Window.create (sf::VideoMode(800,600),"SFML tutorial");
 */

//Game loop
while(Window.isOpen())
{
    sf::Event Event;
    while(Window.pollEvent(Event));
    {
        if(Event.type == sf::Event::Closed)
        {
            Window.close();
            std::cout << "Close" << std::endl;

        }
    }
}

return 0;
完成此操作后,窗口现在打开并按预期运行

另外,这是使用xcode和SFML模板制作的

编辑:

刚刚创建了一个新的xcode-SFML项目,并删除了其中的一些代码,以创建一个空窗口,它看起来很糟糕。代码看起来完全一样。这很奇怪,因为它是完全相同的代码。

您的问题是您声明了变量事件类型,必须将变量名称更改为小写

这样

#include <SFML/Graphics.hpp>
#include <iostream>

// Here is a small helper for you ! Have a look.
#include "ResourcePath.hpp"

int main()
{
sf::RenderWindow Window(sf::VideoMode(500,400),"SFML tutorial");
/* Or we can do this
* sf::RenderWindow Window
* Window.create (sf::VideoMode(800,600),"SFML tutorial");
*/

//Game loop
while(Window.isOpen())
{
sf::Event event;
while(Window.pollEvent(event));
{
    if(event.type == sf::Event::Closed)
    {
        Window.close();
        std::cout << "Close" << std::endl;

    }
}
} 

return 0;
#包括
#包括
//这里有一个小帮手给你!看一看。
#包括“ResourcePath.hpp”
int main()
{
sf::RenderWindow窗口(sf::VideoMode(500400),“SFML教程”);
/*或者我们可以这样做
*sf::RenderWindow窗口
*创建(sf::VideoMode(800600),“SFML教程”);
*/
//游戏循环
while(Window.isOpen())
{
sf::事件;
while(Window.polleevent(event));
{
如果(event.type==sf::event::Closed)
{
Window.close();

std::cout从我所看到的,不要使用if语句来检查事件,使用switch语句。在尝试轮询事件时也使用
while(window.isOpen())


您是否阅读了上的教程?因为我可以保证它是学习sfml的最佳来源。请在使用其他来源之前使用它。

尝试了此方法,但无效。您知道还有什么可能导致此问题吗?我正在使用的教程说使用switch语句。他们可能使用if语句,因此对我们来说很容易要习惯。我也更喜欢通过视频学习,因为如果我在阅读文档,我往往会分心和上船。不过谢谢你的提示!@aPyDeveloper我和你在同一条船上。从视频学习是我更喜欢的。但是如果你想成功,你需要阅读源代码和文档。我这样做的方式就是进入完整的学习阶段每当你感到心烦意乱时,试着重新关注自己。也给自己一些动力。谢谢你的提示。下次再试。
#include <SFML/Graphics.hpp>
#include <iostream>

// Here is a small helper for you ! Have a look.
#include "ResourcePath.hpp"

int main()
{
sf::RenderWindow Window(sf::VideoMode(500,400),"SFML tutorial");
/* Or we can do this
* sf::RenderWindow Window
* Window.create (sf::VideoMode(800,600),"SFML tutorial");
*/

//Game loop
while(Window.isOpen())
{
sf::Event event;
while(Window.pollEvent(event));
{
    if(event.type == sf::Event::Closed)
    {
        Window.close();
        std::cout << "Close" << std::endl;

    }
}
} 

return 0;