我的SFML项目在约10秒后崩溃



我在C 中的SFML项目有问题。编译并运行了此简单代码后,我开始在窗口中使用鼠标(代码是一种非常简单的路径算法,在该算法中,我单击的位置就是" CH"纹理的位置)和APROX之后。10秒左右的窗户停止响应。程序不会崩溃的唯一一次是我以调试模式运行它时。不久前,我有一个更大的项目遇到了这个问题,但是由于这个问题,我放弃了。我相信该程序崩溃与使用鼠标有关,因为在较大的项目中,我曾经启动并以相同的方式崩溃了,我还使用了SFML鼠标功能,当编译并以调试模式进行编译并运行时,它没有碰撞。我正在用Code :: Blocks版本编程:13.12和SFML库,我不确定哪个版本。我不知道为什么会发生这种情况,所以请您在这个问题上寻求帮助。谢谢: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 Think 程序没有响应,它告诉您

它实际上并没有崩溃。

最新更新