J'utilise C # / XNA et on m'a souvent dit de ne pas mélanger le code de mise à jour avec le code de tirage - et je suis certain que ce n'est pas le cas! Mais quelqu'un pourrait-il s'il vous plaît décrire ce qu'est exactement le «code logique»?
Comme on peut le voir ici: http://blogs.msdn.com/b/shawnhar/archive/2007/07/25/understanding-gametime.aspx
[...] assurez-vous de mettre toute votre logique de jeu dans la méthode Update (pas dans Draw!) et tout se déroulera à une vitesse constante.
Je pose cette question car la vitesse de mon jeu fluctue par rapport au FPS. Les FPS lents correspondent aux objets se déplaçant lentement et inversement. Et oui, j'inclus le position += speed * (float)gt.ElapsedGameTime.TotalSeconds;
code attendu .
C'est probablement une grande question de recrue, mais je veux juste être absolument clair sur la définition de cela.
gt.ElapsedGameTime.TotalSeconds
est le nombre de secondes écoulées depuis le début du programme. Si vous multipliez votre vitesse par cela, alors après 5 secondes de jeu, votre vitesse sera 5 fois plus rapide (sauf dans le cas particulier où la vitesse est réglée sur 0). Vous ne savez pas quoi d'autre pourrait rendre cela faux, mais je suis intrigué.
iii
incrémenter manuellement chaque mise à jour, parce que je ne la veux pas en quelques secondes, je veux des étapes ou des cadres. Je peux voir que votre façon de faire est un moyen valable de coder de manière souple.
position = speed * ...TotalSeconds
. Remarquez que=
non+=
. Si c'était+=
juste comme vous l'aviez tapé, votre position disparaîtrait presque instantanément de l'écran.