neodelphi
Messages postés442Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention11 août 2008
-
28 août 2005 à 11:59
neodelphi
Messages postés442Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention11 août 2008
-
28 août 2005 à 14:10
Bonjour tout le monde !
Je suis actuellement de me lancer dans la réalisation d'un jeu utilisant directX. Pour avoir une base de temps en fonction de la rapidité de l'ordinateur sur lequel s'exécute le programme j'ai réalisé une classe CFps utilisant les méthodes QueryPerformanceFrequency et QueryPerformanceCounter pour déterminer le temps écoulé entre deux images.
Sa marche très bien. Le problème est que je voulai par la suite que cette base de temps soit accessible depuis n'importe quelle classe, et ne pas avoir à donner l'adresse d'une instance de CFps à chaque création de classe. Ayant déjà codé quelque chose de similaire en java je me suis dit que j'allai procéder de la même manière et allai mettre ma classe en static. J'ai donc d'abord essayé de mettre une seule variable statique:
La méthode refresh modifi delta.
Ce genre de truc marchait en java, mais je n'ai jamais fait de static en c++. Actuellement j'ai un problème lors du linkage:
fps.obj : error LNK2001: unresolved external symbol "private: static float CFps::delta" ...
neodelphi
Messages postés442Date d'inscriptionjeudi 4 avril 2002StatutMembreDernière intervention11 août 2008 28 août 2005 à 14:10
Merci àa fonctionne en mettant également la déclaration dans le cpp, bien que je n'en voit pas l'intéret à part de faire fonctionner mon projet.
J'ai jetté un oeil sur le singleton desing patern, mais je préfère le faire en statique ce qui me permettra de faire CFps::getDelta à n'importe quel endroit du code.