J'ai un problème avec mon projet sfml en C++. Après avoir compilé et exécuté ce code simple, je commence à utiliser ma souris dans la fenêtre (le code est un algorithme de pathfinding très simple, dans lequel, où je clique, c'est où la texture "ch" va) et aprox. 10 secondes environ, la fenêtre ne répond plus. La seule fois où le programme ne plante pas, c'est quand je l'exécute en mode débogage. J'ai eu ce problème il y a quelque temps avec un projet plus important, mais à cause de ce problème, j'ai abandonné. Je crois que le crash du programme a quelque chose à voir avec l'utilisation de la souris, car dans le plus gros projet j'ai déjà démarré et planté de la même manière que les fonctions de la souris sfml, et quand compilé et exécuté en mode débogage, il n'a pas crash. Je suis en train de programmer dans la version de Code :: Blocks: 13.12, et la librairie SFML je ne sais pas quelle version. Je ne sais pas pourquoi cela arrive, alors demandez-vous de l'aide avec ce problème. Merci: DMon projet sfml se bloque après ~ 10 secondes
Le code:
#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;
}
Avez-vous essayé de le déboguer? Aussi, vous ne semblez pas interroger les événements de la fenêtre de rendu. – VTT
Vous ne répondez pas aux événements Windows. Regardez les exemples dans [la documentation] (https://www.sfml-dev.org/documentation/2.4.2/classsf_1_1RenderWindow.php) – PeterT
J'ai changé la partie où la position de cette souris j'ai pris à un événement et il fonctionne très bien. Merci de votre aide. –