bonsoir,
le titre de mon topic peut vous paraître un peu idiot mais je ne savais pas quoi mettre d'autre pour mon problème^^, alors voilà je code un petit jeu style mario en C++ avec la SDL, quand je testais mes déplacements (gauche et droite) avec le WaitEvent et EnableKeyRepeat(10, 10), les déplacements étaient un peu rapides mais ça ne saccadais pas, mais bon je peux difficilement gérer un jeu du style mario avec un WaitEvent, je suis donc passé a PollEvent, et je fais le test suivant pour définir le nombre de fps :
seulement voilà, maintenant avec n'importe quel nombre de ms d'attente (10, 20, 30, 40, 50) ça saccade un peu (avec 10 ça se voit pas fort mais ça se voit quand même) et evidemment ça devient beaucoup trop rapide, mais ce qui est bizarre c'est que ça se passe environ tous les 10 pixels. a environ tous les 10 pixels on diraitqu'il fait un bon de 5 pixels vers l'avant tout a coup, alors ça donne l'impression d'une saccade et je ne sais pas comment le gérer. je pense que c'est parce que SDL_Delay n'est pas extrèmement précise, et donc peut mettre le programme en attente un peu plus longtement que prévu pour certaines boucles, mais je n'en suis pas sur et de toute façon je ne sais pas comment le règler (du moins sans faire un jeu qui dès qu'on appuye sur une touche envois le personnage a l'autre bout de l'écran). pourriez vous me donner votre avis ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 tempsActuel = SDL_GetTicks(); if (tempsActuel - tempsPrecedent > 10) { tempsPrecedent = tempsActuel; } else { SDL_Delay(10 - (tempsActuel - tempsPrecedent)); }
merci
Partager