Réduire le temps - C++ - Programmation
Marsh Posté le 13-06-2005 à 11:52:57
C'était pour de rire, la fonction GimmeTime me faisant penser à ABBA
Sinon je sais pas... Brut de fonderie, tu fait une boucle d'attente entre chaque truc... Genre tu fait un GimmeTime, puis une boucle, tant que GimmeTime() - startTime est inférieur à un certain temps, ça boucle
Marsh Posté le 13-06-2005 à 11:56:26
ok j'avais pas fait le rapprochement avec la chanson d'ABBA, sinon je pense que je serai rentré dans ton jeu, bref, je vais essayer ce que tu m'a proposé..
Merci bien en otut les cas
Marsh Posté le 13-06-2005 à 12:01:29
Attend j'ai réfléchi un peu à ce que tu m'a dis, et toi tu me demande de boucler jusqu'à une certaine valeure, sauf que moi ce que je veux c'est modifier les attributs, je peux pas me baser sur quelque chose de précis, parce que la fonction ou l'on fait tous les GimmeTime est apellée par l'utilisateur, je sais pas si je me suis bien fait comprendre lol
Marsh Posté le 13-06-2005 à 12:06:13
Je suis désolé, je vais expliquer le contexte, peut être que ca ira mieux pour toi
Je dois faire un tamagoshi et pour éviter d'utiliser le multithread, on m'a conseillé d'utiliser la méthode e=que j'ai décrite ci dessus.
Seulement, mes attributs varient trop vite en fonction du temps, et donc je cherche le moyen de "ralentir" leur modifications
Merci
Marsh Posté le 13-06-2005 à 12:07:28
Comme dit, tu prends un temps de référence. Si un certain interval ne s'est pas écoulé, tu ne modifies pas les attributs
Marsh Posté le 13-06-2005 à 12:10:37
Oui mais pendant que tu attends que ce temps de référence arrive en qq sorte, le temps pris pour modifier les attributs continue de découler, et donc ca reviendra au même, puisque on aura attendu plus longtemps, donc les attributs auront augmenté de la même facon...
Je me suis bien faire comprendre?
Marsh Posté le 13-06-2005 à 12:11:34
Ben calcul sur les minutes au lieu des secondes, ça variera 60 fois moins vite
Marsh Posté le 13-06-2005 à 12:13:01
Très bonne idée, je te remercie, pourrais tu me donner la syntaxe??
Voici ma fonction GimmeTime :
Code :
|
Merci d'avance
Marsh Posté le 13-06-2005 à 12:13:43
Ch'ais pas, j'ai jamais fait de C++ Y'a pas de sleep ou de truc dans le genre ? Enfin un truc qui ne bloquerait pas le reste aussi...
Marsh Posté le 13-06-2005 à 12:15:16
Bah non puisque je prend le temps à partir de l'horloge système, donc même avec un sleep ca ne marchera pas...
Marsh Posté le 13-06-2005 à 12:17:34
d'ailleurs si ça va toujours trop vite tu peux diviser par 100, par 1000, etc.
Marsh Posté le 13-06-2005 à 12:17:35
Aïe c'est trop lent maintenant M****
Peut on faire quelque chose du genre :
Code :
|
Au lieu de
Code :
|
Marsh Posté le 13-06-2005 à 12:20:05
Oula non, j'ai déjà essayer et ca me fait n'importe quoi!!
Je me sens quelque peu perdu
Marsh Posté le 13-06-2005 à 12:22:05
J'ai essayé d'agir sur les ArrayAttributs ensuite mais ca me donne n'importe quoi aussi et la je n'ai plus d'idées
Merci en tout les cas
Marsh Posté le 13-06-2005 à 12:23:02
Bon en gros si j'ai bien compris ton problème tu utilises la valeur renvoyée par GimmeTime() pour calculer d'autres valeurs.
Or GimmeTime() te renvoie un entier enorme (en secondes)
Donc tes valeurs varient n'importe comment ("trop vite" )
Solution : Utiliser des coefficients pour reduire cette valeur donc diviser ce que tu renvoie GimmeTime() par 2, 5, 10, 60, ... pour que ça te convienne.
(mais bon je suis vraiment pas sûr que ça soit une bonne idée par rapport à ce que tu veux faire)
Marsh Posté le 13-06-2005 à 14:22:26
J'ai donc changé ma méthode GimmeTime, la voici :
Code :
|
Et lorsque j'éxécute le programme, il me met des valeurs qui n'ont rien à voir...
Quelqu'uin peut il m'expliquer la raison??
Merci
Marsh Posté le 13-06-2005 à 15:10:40
Personne n'aurait une petite idée parce que là franchement je vois pas...
Merci d'avance
Marsh Posté le 13-06-2005 à 17:29:27
Aldarek a écrit : |
rien à voir avec quoi ?
Marsh Posté le 13-06-2005 à 17:36:21
avec ce que j'attends, au lieu de passer de 80 à 78 par exemple, il passe de 80 à 197834231, enfin des chiffres de merde qui n'on rien à voir.
Sinon quelqu'un m'a dit d'utiliser SetTimer(), qu'en pensez vous?
Marsh Posté le 15-06-2005 à 09:57:37
Alors que pensez vous du SetTimer()?? Merci pour vos indications
Marsh Posté le 15-06-2005 à 10:17:54
Mon temps intermédiaire dépend du temps que l'utilisateur met pour effectuer divers actions, car le tamagoshi (pour l'instant) se présente avec un menu, et le temps intermédiaire est calculé à chaque début du menu...
Marsh Posté le 13-06-2005 à 11:40:46
Bonjour à tous, voilà mon problème, je dois faire varier des caractéristiques en fonction du temps, et pour cela, au début du programmme, j'ai une fonction qui relève l'heure du système et à un certain moment, je dois modifier des attributs, et donc je recommence l'opération avec l'heure du système. Seulement, mes attributs varient trop vite, et je voulais savoir comment "ralentir" ce changement...
Voici le code :
GimmeTime étant la fonction ou l'on récupère l'heure...
Je suis sous Visual C++
Merci d'avance