Je suis d'accord avec certaines des autres réponses ici. Vous ne voulez pas vraiment ralentir l'exécution du jeu. Il n'y a aucun intérêt à le faire. Plus la conception plus tard sur la piste devient plus difficile que vous êtes coincé avec ce temps constant.
Le problème avec l'utilisation des delta temporels est que vous ne pouvez jamais être sûr de la fréquence à laquelle votre méthode de mise à jour sera appelée. Il y a un certain nombre de facteurs qui pourraient faire que cela tourne trop vite ou trop lentement. Si votre boucle de jeu est lente, même pour une fraction, vous pourriez manquer une coche entière dans votre jeu. Pour quelque chose comme un jeu de sport ce serait mauvais.
Utilisez plutôt une minuterie. .NET dispose d'un modèle d'événement incroyable et d'une classe de minuteur prédéfinie. Il est initialisé et vous le dites à quelle fréquence vous voulez faire une boucle. Chaque boucle déclenche un événement que vous pouvez écouter. Les avantages de ce sont deux fois. Premièrement, vous pouvez être assuré que votre tic sera proche de ou quand vous le demanderez. Deuxièmement, il ne fonctionne pas dans la logique du jeu principal permettant à vos programmes d'être mieux structurés. Vous pouvez même lier plus d'un événement à la minuterie vous permettant de me rendre plus modulaire avec votre code.
Try this ...
//create a new instance of a timer
//and set it to 1000 millisecond interval(1 second)
Timer t = new Timer(1000);
//Add a listener to the elapsed event
t.Elapsed += new ElapsedEventHandler(t_Elapsed);
//start the timer
t.Start();
void t_Elapsed(object sender, ElapsedEventArgs e)
{
// I am called each second
}
Vous voulez ralentir le jeu? –
Pourriez-vous expliquer ce que cela signifie: * aiment montrer plus lentement la progression de ce qui représente la logique de mon application * –
Vous ne devriez pas compter sur la vitesse à laquelle les mises à jour/tirages sont appelés en premier lieu, il n'y a aucune garantie re appelé à une vitesse constante. – Doggett