begin process at 2012 02 13 00:45:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

[Directx] Deplacement et vitesse d'une balle selon le cpu ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[Directx] Deplacement et vitesse d'une balle selon le cpu ?

samedi 20 août 2005 à 17:31:44 | [Directx] Deplacement et vitesse d'une balle selon le cpu ?

skeleton


Salut, voila mon probleme je me test avec directx en faisant un casse brique mais voila que je tombe sur un probleme (qui commence a me faire rager et mal a la tete :'(   )

Ma balle n'avance pas de la meme vitesse sur un pc a 3ghz que sur un pc a 866mhz certes c'est normal si on fais le deplacement avec

balle_x += vitesse * vecteurx
balle_y += vitesse * vecteury

il faut donc rajouter pour le calcul du deplacement de la balle le facteur Temps alors je fais simplement

balle_x += vitesse * vecteurx * delta_temps
balle_y += vitesse * vecteury * delta_temps
delta_temps correspond au temps ecouler entre les affichages de la balle a l'ecran
Ainsi on respecte la formule connu de tous D = v * dt 
ma balle doit parcourir une distance de D pixel a l'ecran selon sa vitesse v * le temps ecoulé dt


ben chez moi ca ne marche pas mes valeurs de delta_temps sont complement folle ! j'ai des resultat pour delta_temps negatif et positif et meme egal a zero ... pourtant j'utilise
temps1 = timeGetTime();
et le delta_temps = timeGetTime() - temps1;

tout ce que je vous demande pour m'aider c'est pas de chercher mon erreur mais plutot de m'expliquer comment vous faites vous. ou bien si vous denichez un code source d'un mouvement en fonction du temps je veux bien le prendre !


merci a vous et desolé pour les fautes que j'aurais pu faire mais j'ai plus de tete et j'en ai ras le bol !
oo
samedi 20 août 2005 à 17:57:25 | Re : [Directx] Deplacement et vitesse d'une balle selon le cpu ?

skeleton

J'aurais bien pris le temps de réediter mon message pour corriger et mieux m'expliquer mais je ne sais pas comment faire

dsl pour vos yeux

oo
samedi 20 août 2005 à 20:40:31 | Re : [Directx] Deplacement et vitesse d'une balle selon le cpu ?

vinc1008881

je ne mi connais pas du tout en directX mais c'est pas grave.

pour ne pas que ton deplacement soit lié a la vitesse du CPU, faut faire comme sa

avec API WINDOWS :

CreateTimer (hwnd,0,50,NULL) /*Le timer n°0 est apeler tous les 50 ms*/

case WM_TIMER:
/*routine pour réaffichier ton truc, decalage de x pixel*/

comme x = constante et que 50 ms = constante, alors v = d/t = cste voila...

sinon yas aussi la méthode du sleep (temps) mais elle syncrhone et bloquante celle la, bon aïe
dimanche 21 août 2005 à 00:15:27 | Re : [Directx] Deplacement et vitesse d'une balle selon le cpu ?

NoRabbit

non surtout pas de timer. pourquoi ? beaucoup moins souple, surtout en réseau. Une partie de ton calcul et de ton raisonnement est bon, voici la façon dont il faut procéder: tout d'abords, il faut utiliser la fonction "GetTickCount" qui te renvoie une valeur en milliseconde. tu déclares trois variables: int temps1, temps2, difference; dans ta boucle d'affichage, la première chose à faire est de sauver la valeur de GetTickCount dans ta variable "temps1". Ensuite tu calcules la différence entre la variable "temps2" et "temps1" : difference = temps1 - temps2; Si c'est la première itération de ta boucle, la valeur de la variable "difference" sera très grande étant donné que la variable "temps2" = 0 (tu peux toujours palier à ça en lui spécifiant une valeur avant de commencer ta boucle) Ensuite tu effectues tout tes calculs et après avoir affiché ton image à l'écran (avec la fonction style "D3DDevice.Present") tu sauves la valeur de la variable "temps1" dans ta variable "temps2": temps1 = temps2; à la prochaine itération, la différence des deux sera le temps en milliseconde écoulé entre chaque affichage d'une image. c'est cette différence qui va te servir de multiple pour calculer n'importe quel déplacement ou changement. si tu veux voir une source ou cette méthode est utilisée : http://www.cppfrance.com/code.aspx?id=29053 elle est entièrement commentée et utilise opengl (mais ça ne change rien pour toi) ciao
dimanche 21 août 2005 à 00:16:58 | Re : [Directx] Deplacement et vitesse d'une balle selon le cpu ?

NoRabbit

bon, je ne sais vraiment pas ce qui s'est passé (ça doit être opéra, j'essaies avec IE)

non surtout pas de timer.
pourquoi ? beaucoup moins souple, surtout en réseau.

Une partie de ton calcul et de ton raisonnement est bon, voici la façon dont il faut procéder:

tout d'abords, il faut utiliser la fonction "GetTickCount" qui te renvoie une valeur en milliseconde.

tu déclares trois variables:
int temps1, temps2, difference;

dans ta boucle d'affichage, la première chose à faire est de sauver la valeur de GetTickCount dans ta variable "temps1".

Ensuite tu calcules la différence entre la variable "temps2" et "temps1" :
difference = temps1 - temps2;
Si c'est la première itération de ta boucle, la valeur de la variable "difference" sera très grande étant donné que la variable "temps2" = 0 (tu peux toujours palier à ça en lui spécifiant une valeur avant de commencer ta boucle)

Ensuite tu effectues tout tes calculs et après avoir affiché ton image à l'écran (avec la fonction style "D3DDevice.Present") tu sauves la valeur de la variable "temps1" dans ta variable "temps2":
temps1 = temps2;

à la prochaine itération, la différence des deux sera le temps en milliseconde écoulé entre chaque affichage d'une image.

c'est cette différence qui va te servir de multiple pour calculer n'importe quel déplacement ou changement.

si tu veux voir une source ou cette méthode est utilisée : http://www.cppfrance.com/code.aspx?id=29053
elle est entièrement commentée et utilise opengl (mais ça ne change rien pour toi)

ciao

.:. NoRabbit .:.

dimanche 21 août 2005 à 00:18:33 | Re : [Directx] Deplacement et vitesse d'une balle selon le cpu ?

NoRabbit

c'était opéra... pourtant dernière version...
bon je vais switcher à FireFox

.:. NoRabbit .:.
dimanche 21 août 2005 à 12:30:33 | Re : [Directx] Deplacement et vitesse d'une balle selon le cpu ?

skeleton

Ok merci tous le monde, j'aurais jamais continuer le casse brique si j'avais pas resolut ce probleme je suis tres prise de tete

Et ben j'espere ne pas devoir revenir ici pour pleurer

Skeleton.

oo
dimanche 21 août 2005 à 13:42:33 | Re : [Directx] Deplacement et vitesse d'une balle selon le cpu ?

xboxut

bon bcp de blabla pour pas grand chose g la flemme de lire les poste ,le plus simple c un morceau de code et un bon ptit tuto alors :
[ Lien ]
samedi 27 août 2005 à 15:50:55 | Re : [Directx] Deplacement et vitesse d'une balle selon le cpu ?

cali70

Membre Club
Réponse acceptée !

Ben moi j'ai une autre idée ! Sit u utilisais plutôt le nombre de fps ds tes calcules.....



Cette discussion est classée dans : temps, vitesse, balle, delta, deplacement


Répondre à ce message

Sujets en rapport avec ce message

probleme de physique [ par mat74 ] salut a tousvoila j'ai essayer de gerer une balle dans un  carré de façon réalistepour sa j'ai créer une classe ballevoila la fonction pour définir la bomberman avec turbo c++ [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peumais bon...Voici mon probleme :j'ai un projet pour la fin de l'annee: fair bomberman avec turbo c++ [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peumais bon...Voici mon probleme :j'ai un projet pour la fin de l'annee: fair Augmenter vitesse d'exécution [ par scelw ] Bonjour, Je "m'amuse" avec des nombres premiers de très grande taille. Le temps d'exécution de mon programme est très long. Pour aboutir, il faut souv temps d'exécution d'un processus (c/linux) [ par davidauche ] bonjour a tt monde,comment calculer le temps d'exécution d'un processus en c sous linux!?j'essaie avec time et times  + struct tms marche pas! tjrs me Vitesse de calculs [ par elflink ] Bonjour à tous,Je travaille en API, C++.Je m'exerce sur l'élaboration d'un outil de dessinage, et de la même manière que MSPAINT, mon programme dispos Priorité et thread [ par obasileus ] Salut, j'ai un programme qui tourne avec 2 thread utilisant une même ressource partagé. Je voudrai privilégier l'execution d'un des deux thread car d Lecture sur le port série en Borland C++ [ par Kurul1 ] Bonjour à tousJe voudrais savoir comment faire avec Borland C++ pour lire des informations sur un port série. il faudrais également que je puisse régl comment gerer les retour dans un fichier. [ par casper_2 ] Bonjour jaimerai que dans mon fichier,les retour chariot,soit gerer!!En faite j'aimerai qu'après chaque ecriture,dans le fichier il puisse m'ecrire a RS232 vitesse differente RX TX [ par bobnono ] Bonjour tout le monde, est-ce possible d'avoir une connexion série rs232 ou la reception est à 32120 bauds et l'émission &#2


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,212 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales