我的 sfml 项目在大约 10 秒后崩溃

My sfml project crashes after ~10 seconds

我的 C++ sfml 项目有问题。编译并 运行ning 这个简单的代码后,我开始在 window 中使用我的鼠标(代码是一个非常简单的寻路算法,其中,我点击的地方就是 "ch" 的地方纹理去)和大约之后。 window 停止响应 10 秒左右。程序没有崩溃的唯一时间是当我 运行 它处于调试模式时。前段时间我在一个更大的项目中遇到了这个问题,但由于这个问题我放弃了。我相信程序崩溃与使用鼠标有关,因为在更大的项目中我曾经以同样的方式启动和崩溃我也使用了 sfml 鼠标函数,并且在调试模式下编译和 运行 时,它没有崩溃。我在 Code::Blocks version:13.12 中编程,我不确定 SFML 库是什么版本。我不知道为什么会这样,所以请你帮忙解决这个问题。 Thanks:D

代码:

#include <SFML/Graphics.hpp>
#include <iostream>
#include <conio.h>
#include <windows.h>

using namespace std;
using namespace sf;

int main()
{
RenderWindow win(VideoMode(700,700),"test");

float x=10,y=10;
int mx=x,my=y;
int mxo,myo;

Texture t;
t.loadFromFile("char.png");
Sprite ch;
ch.setTexture(t);

ch.setPosition(x,y);

while(win.isOpen())
{
    win.clear();
    if(Mouse::isButtonPressed(Mouse::Left))
    {
        mx=Mouse::getPosition(win).x;
        my=Mouse::getPosition(win).y;
    }
        if(x!=mx)
        {
            if(mx>x)
            {
                x++;
            }
            if(mx<x)
            {
                x--;
            }
            Sleep(2);
        }
        if(y!=my)
        {
            if(my>y)
            {
                y++;
            }
            if(my<y)
            {
                y--;
            }
            Sleep(2);
        }

        ch.setPosition(x,y);
        win.draw(ch);
    win.display();
}
return 0;
}

您在主事件循环中阻塞睡眠,并且没有处理事件。

这让OS认为程序没有响应,它告诉你那个

它实际上并没有崩溃。