ionstorm356
Messages postés38Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention28 juin 2010
-
6 sept. 2005 à 15:21
ionstorm356
Messages postés38Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention28 juin 2010
-
10 oct. 2005 à 12:50
Salut, j'ai un petit problème qui me semble venir de ma variable ElapsedTime contenant le temps qui s'est écoulé depuis la dernière frame. Enfaite quand je n'utilise pas cette variable pour les animations celles-ci sont fluide mais dépendent du FrameRate, c'est pourquoi je doit utiliser la variable ElapsedTime, pour que les mouvements et animations ne dépendent que du temps. Mon problème c'est que qu'en j'utilise la variable ElapsedTime les mouvements de mon personnage (je fais un First Person Shooter) saccade ou parfoit vont trop vite, de brusques avancé ou des ralentissement, qui ne se passent pas si je ne met pas la variable ElapsedTime. La variable ElapsedTime est calculé grace à la fonction DXUtil_Timer (TIME_GETELAPSEDTIME) fournit avec le DirectX9 App Wizard, je n'utilise pas le App Wizard j'y est juste pris cette fonction qui me parraissait bien pratique pour calculer le temps. Si quelqu'un sait comment faire pour que les mouvements et animations ne saccade plus à cause de ElapsedTime, sa serait simpa de m'en faire pars. Merci d'avance ++
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 6 sept. 2005 à 17:55
bah ... pffff... bizarre... tu devrais refaire cette fonction pour voir
si ca marche mieux, meme avec un simple time(), pas tres precis mais ca
suffit.... sinon bah c'est ton code qui buggue... mais juste comme ca
que dire de plus...
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 6 sept. 2005 à 19:05
hum ouais pas bete, c'est ptet que ca va trop vite les données fournies
par ton timer ne sont pas assez précises...par contre ton exemple je
m'aime pas trop moddib....pour un limitateur de fps va voir ici... ca
le bloque a 50 en libérant le CPU autant que possible
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 6 sept. 2005 à 21:12
ca n'a rien a voir avec la sdl, qui ne me sert que pour le fenetrage.
si je m'en sers pour le timer ( je ne me souviens plus trop) libre a
toi d'en utiliser un autre, justement sur le sommaire en ce moment ya
une source qui en propose 3
le but d'un limitateur de fps est ded faire tourner le PC au maximum utile.
c'est a dire qu'un P4 serait tout a fait capable d'afficher un 'tit
cube texturé a 500fps ou plus, seulement c'est stupide: l'écran , lui ,
ne peut pas en afficher plus que 50... (ou 60 ca dépend de ce que tu as
choisi)
donc on affiche une frame, et on fait un Sleep() jusqu'a ce qu'il soit temps de dessiner la frame suivante.
ca a en plus l'avantage de libérer le proco , qui pourra alors s'occuper d'autres petites choses.
remarque que si ton prog est multithreadé, les threads ne seront pas concernés par ce Sleep() enfin ca c'est a toi de voir
ionstorm356
Messages postés38Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention28 juin 2010 7 sept. 2005 à 00:51
Non mon code est bon je pense vu que avec une constante à la place de ElapsedTime le mouvement est fluide, je pense qu'il y a un problème au niveau du calcul du temps alors je vais essayer avec les bonnes vieilles méthodes et je vous informes de l'évolution, merci pour les réponses si vite ++
ionstorm356
Messages postés38Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention28 juin 2010 7 sept. 2005 à 21:16
lol je sais très bien que sur une basse config vu que la vitesse des mouvements est basé sur le FPS les mouvements seront beaucoup plus lents. Quand a ton truc MoDDiB je l'est fais mais avec un temps minimum beaucoup plus petit surement trop petit alors je vais déja tester de mettre 10ms et apres si sa ne marche tj pas de changé la fonction calculant le temps.
Pour expliquer pourkoi un limiteur de fps irait parceque je croi que MoDDib avait pas bien compris c'est que si on limite les frame alors la variable ElapsedTime serait beaucoup plus grande et ne poserai peut etre donc plus de problème, mais bon je ne compte pas utiliser de limiteur de frame pour pouvoir analyser les performances de mon jeu..
Merki quand même pour les idées je vais tout essayer @+
ionstorm356
Messages postés38Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention28 juin 2010 7 sept. 2005 à 21:24
Oui c bon merki beaucoup j'ai régler le temps minimum entre chaque frame a 10ms (eh oui bien en faite s'est un limiteur mais bon pas grave je peux quand même voir l'évolution de mon fps alors sa va...) enfaite c'était vraiment tout bete merci ++
Je sais pas du tout si ca pourra vous aider... mais n'hésiteez pas à demander si quelques chose n'est pas clair ou si vous voulez des explications sur la class camera...
bye
ionstorm356
Messages postés38Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention28 juin 2010 10 sept. 2005 à 13:34
Ouai j'ai fait quelque chose dans ce genre pour le déplacement je te remercie je crois ne plus avoir de problèmes pour le déplacement, par contre la vue géré par le déplacement de la souris est soumis au FPS et non au temps mais sa par contre je sais pas qu'est ce qu'il faut multiplier par ElaspedTime, voila comment je gere la vue :
Un objet POINT MoveMouse m'enregistre les déplacements de la souris, qui à chaque frame est recentré au milieu de l'écran apres ce calcul. Si l'on déplace la souris a droite MoveMouse.x sera par exemple = à 10, puis si on la redéplace encore a droite a 20 encore, bien sur tout dépend à quelle vitesse on la déplace dans ce cas la valeur change. Le vecteur direction de la vue est calculé avec cosf sinf et tanf de MoveMouse, mais ma question c'est où que je doit mettre mon ElapsedTime pour rendre mon scrolling indépendant de mon FPS ? (Si vous voulez mes morceaux de codes n'hésitez pas à demander)
ionstorm356
Messages postés38Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention28 juin 2010 10 sept. 2005 à 13:37
J'ai oublié de dire que j'ai tester sur un autre ordi et la vue souris trembe quand on la déplace. Problème lié au FPS ? En tout cas il faut se débarrasser de cette indépendance oui ou non ?
MoDDiB
Messages postés546Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention 4 mai 20071 11 sept. 2005 à 21:49
Evidemment que tu dois te débarrasser de toutes les indépendances :
sinon sur la prochaine génération d'ordinateur ton jeu sera injouable
:) et sur l'ancienne aussi d'ailleurs :)
Ensuite sur le comment ça dépends de comment tu bouges le tout et si tu
sais arriver jusque la tu dois savoir où ajouter le elapsed time !