我的 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认为程序没有响应,它告诉你那个。
它实际上并没有崩溃。
我的 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认为程序没有响应,它告诉你那个。
它实际上并没有崩溃。