Bonjour,
Je suis actuellement en train de développer un jeu, et je me trouve face à un problème dans le thread de mes créatures. Le thread fonctionne sans problème, cependant, tout est saccadé lorsque je lance le jeu. J'ai fais diverses recherches et tests, je n'ai rien trouvé. Puis j'ai voulu faire des affichages de variables dans la console, et là, miracle, tout fonctionnait correctement, ou presque. Je me demandais pourquoi, j'ai supprimé les instructions entre le « std::cout » et le « std::endl », pour terminer avec une ligne « std::cout << std::endl », et tout fonctionnait encore parfaitement. Cependant, quand je l'enlève, le problème revient. Voici le code de la fonction que le thread exécute :
Me voici donc dans l'incompréhension la plus totale, si vous avez une idée, je suis preneur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 void Vivant::up() { _canQuit = false; while(!getInitialized()){ std::cout << "Init Viviant" << std::endl; } _sprite.setPosition(_initPos); while(isAlive()){ if(GameState::state()){ sf::Time deltaTime = _clock.getElapsedTime(); _clock.restart(); float elapsedTime = deltaTime.asSeconds(); if(canBeAttacked()){ _sprite.setCouleur(sf::Color(255,255,255)); } else if (_vie < _vieMax){ _sprite.setCouleur(sf::Color(255,100,100)); } update(deltaTime); _sprite.update(deltaTime); _sprite.move(_vx*elapsedTime,_vy*elapsedTime); std::cout << std::endl; } else { _clock.restart(); } } _canQuit = true; }
PS :*J'utilise la SFML pour l'API graphique.
Partager