CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++/SFML] gérer le temps

naruto_forever
naruto_forever
Niveau 10
20 février 2008 à 15:46:55

Bonjour,
Voilà j'ai un ptit problème, j'ai regarder le tuto SFML sur la gestion du temps, et j'ai décidé de ne pas utiliser de clock, mais App.GetFrame(). Je fais donc une fonction qui l'utilise, mais j'ai plusieurs problèmes ( enfin deux je crois, dont un ne concerne pas SFML ). Si vous vouliez bien m'aider, ce serait super ^^
Voilà le code : http://rafb.net/p/o3tuJ872.html
Ce qu'il se passe, c'est que le perso est bien affiché, mais il scintille et reste sur place. La boucle n'atteint jamais 10 aussi, donc ça ne s'arrête jamais, c'est vraiment étrange.
Merci de votre aide en tous cas,
Bye.

dnob700
dnob700
Niveau 10
20 février 2008 à 20:48:19

lance ton programme au débogueur ou alors mets des cout partout. Si ça ne termine pas c'est que soit display, soit afficher soit getframe ne termine pas.

naruto_forever
naruto_forever
Niveau 10
20 février 2008 à 21:10:10

Merci de ta réponse dnob, mais j'avoue être assez mal renseigné, le débogueur de Code::blocks n'a pas l'air de fonctionner ( ou plutôt je ne sais pas comment le faire fonctionner, et je trouve pas de tuto ) et mettre des cout partout... que veux-tu dire ?
Je peux pas vérifier si une fonction fonctionne ou pas, si ?

elhuron
elhuron
Niveau 6
20 février 2008 à 21:19:28

Hum, je n'arrive pas non plus a faire fonctionner le débogger sous Code::blocks.
Tu met des cout partout pour savoir ou ça plante, ou alors tu peux écrire dans un fichiers texte, ou encore faire une attente de x secondes.

dnob700
dnob700
Niveau 10
20 février 2008 à 22:02:22

mettre des cout partout c'est à dire qu'entre chaque ligne tu mets une instruction de sortie du genre :
cout << __LINE__ << endl;

et comme ça tu sais par où passe ton programme et où est-ce qu'il s'arrête ou boucle. Ça ne résout pas ton problème mais ça permet d'en localiser la cause.

sangohan55
sangohan55
Niveau 10
21 février 2008 à 11:49:38

mouai, cette solution ça va bien pour un programme de moins de 100 lignes, après c'est la galère.

Met des break points un peu partout avec ton debugger.

Essaie de mettre Display en dernière instruction.

naruto_forever
naruto_forever
Niveau 10
21 février 2008 à 12:22:22

"Met des break points un peu partout avec ton debugger."
J'arrive pas à le faire fonctionner, je mets des break points, je lance le débug et il me dit que mon projet est pas configuré, que je dois aller dans build options, j'y ai été et j'ai coché la case du débug mais ça fonctionne toujours pas.

"Essaie de mettre Display en dernière instruction."
C'est déjà fait.

"mouai, cette solution ça va bien pour un programme de moins de 100 lignes, après c'est la galère. "
Vu que c'est qu'une fonction ( de 5 lignes ) qui bug, ça devrait aller ^^

Mince j'ai fait ce que tu m'as dit dnob, et il fait exactement ce qu'il faut : il execute les lignes 1,2,3,4,5 ( fonction ) et même la ligne 6 quand la condition est vraie ( donc Running = false ).
Je comprends rien, pourquoi ça bouge pas ? Pourquoi il quitte pas la boucle ?

elhuron
elhuron
Niveau 6
21 février 2008 à 14:03:54

Affiche la variable 'tour' a chaque ligne.
Une de tes fonctions doit la modifier par dépassement de mémoire ou autre, d'où le fait que ça ne se termine jamais.
Si c'est pas ça, je vois pas.

godrik
godrik
Niveau 30
21 février 2008 à 14:27:19

souvent c'est l'inverse avec les depassement de buffers. Ce que tu vois, c'est la variable avec une valeure débile, mais tu ne sais pas qui a écrit dessus.

naruto_forever
naruto_forever
Niveau 10
21 février 2008 à 22:19:41

J'ai fait ce que tu m'as dit ElHuron, la variable tour fait un truc du genre :
0
0
0
0
1
1
1
1
etc ...
Il va bien à dix, mais il quitte pas la boucle.

dnob700
dnob700
Niveau 10
21 février 2008 à 22:45:02

"mouai, cette solution ça va bien pour un programme de moins de 100 lignes, après c'est la galère. "

Je suis d'accord avec toi, mais sur un petitprogramme ça ne pose pas de problème et, parfois, même sur un grand programme tu n'a pas le choix.
Il y a quelques jours encore j'ai traqué un segfault à coups de "cout" dans un programme absolument gigantesque pour la simple raison que je ne pouvais pas le compiler en mode debug et donc je ne pouvais pas le lancer dans un débogueur (d'autre part, gdb ne vaut pas beaucoup plus que des impressions dans le code source, si on ne peut pas utiliser le débogueur de Visual C++ qui est vraiment formidable).

elhuron
elhuron
Niveau 6
22 février 2008 à 11:16:32

Hum, fort étrange, faut voir avec le reste du programme.
Mais sinon, je te conseille de lâcher ta boucle while pour la boucle for, mais bon, logiquement, le problème ne seras pas résolu... :(
Quand la variable tour vaux 10, normalement, ça devrais quitter ta boucle, mais elle le fait pas, donc, elle continue de s'incrémenter ?
C'est lourd les incoérences :( Sur mon projet, j'ai des bugs, mais très rares, soit, ils coupent le programme, soit il y a un dysfonctionnement de quelque chose, mais vu que ça se passe pas souvent, je doit réviser tout le code :(

naruto_forever
naruto_forever
Niveau 10
22 février 2008 à 13:15:10

Arf c'est très chiant en effet, car je sais pas faire autrement que comme ça, et j'étais bien partis ...
Bon je vais tenter de mettre for plus tard, peut-être qu'avec un petit peu de chance ...

naruto_forever
naruto_forever
Niveau 10
22 février 2008 à 18:25:13

Ha du nouveau peut-être, j'ai remarquer que j'obtiens cette erreur quand je mets mon application en mode console :
http://img301.imageshack.k.us/img301/9919/erreurbr7.png

godrik
godrik
Niveau 30
23 février 2008 à 20:03:08

ca c'est une segfault, tu as un pointeur dans les choux! :)

naruto_forever
naruto_forever
Niveau 10
23 février 2008 à 21:15:08

D'après le code, tu dirais que c'est lequel, car honnêtement je ne vois pas du tout le problème ( suis-je aveugle ? ).
En fait, je ne sais même pas comment on peut faire pour "perdre" un pointeur, je n'ai pas assez d'expérience en la matière >_<

naruto_forever
naruto_forever
Niveau 10
29 février 2008 à 19:50:48

Désolé, mais je me permets un petit :up: vu que mon problème n'a pas avancé depuis la semaine passée...

dnob700
dnob700
Niveau 10
29 février 2008 à 22:55:51

re-post ton code il n'est plus en ligne.
Si tu peut, up load une archive quelque part contenant tout ton projet exactement comme il est, que l'on puisse regarder.

sangohan55
sangohan55
Niveau 10
01 mars 2008 à 10:31:14

avec code::blocks tu peux générer un fichier html de ton code ( en gardant la coloration syntaxique ) et ainsi le mettre sur un ftp :)

naruto_forever
naruto_forever
Niveau 10
01 mars 2008 à 17:01:10

int left = personnage->GetX();
int top = personnage->GetY();
int Speed = 1;
int frames = 0;

for ( int i = 0; i < 10; i ++ )
{
frames = (int) App->GetFrameTime();
left += Speed * frames;
personnage->Afficher(App,1,1,left,top);
App->Display();
}

C'est tout ce qui nous intéresse, et j'ai remarqué qu'en fait la variable frames reste tout le temps à zéro, c'est donc surement celle-ci qui n'est pas allouée. Ce serait la fonction getframetime qui bugerait ?

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment