2009-08-15 4 views
4

Je suis en train de jouer avec des boucles de jeu et de créer des jeux comme pratique.Existe-t-il un meilleur moyen de faire des jeux de console qu'avec Console.Clear()?

Actuellement, j'ai une place de boucle de jeu stable où le jeu est mis à jour aussi vite que possible et le rendu est mis à jour x fois une seconde (25 actuellement)

La méthode rendinging est essentiellement un tirage au sort + Console.Clear () et à des mises à jour très élevées, l'affichage devient très nerveux car il n'est pas fini de dessiner quand Console.Clear() frappe.

Y a-t-il une meilleure façon de faire quelque chose comme ça? Puis-je écrire n'importe quelles données sur la console et les remplacer par d'autres données?

Répondre

4

En supposant que vous écrivez un plein écran de topleft à nouveau dans chaque boucle, vous pouvez remplacer simplement le Clear() avec:

Console.SetCursorPosition(0, 0); 

et écraser l'écran précédent.

+0

Ahh cela pourrait être la clé de ce que je vis. Merci :) –

3

Puisque vous êtes en C# de toute façon, vous voudrez peut-être regarder dans le XNA Framework.

Je suppose que votre problème provient de Console.Clear() n'étant pas optimisé pour ce type d'utilisation, car XNA utilise une méthode similaire (Clear() est appelé sur un GraphicsDevice). Si vous ne voulez pas utiliser XNA, il est peut-être plus rapide de dessiner un rectangle (noir ou gris uni ou autre) plutôt que d'appeler le Clear() pour «vider» l'écran, puis dessiner dessus.

+0

Je commence avec une console pour comprendre les rouages ​​de base d'une boucle de jeu. Mais il pourrait être plus rapide de dessiner une ardoise vierge sur les données à la place de la Console.Clear(). –

1

Vous migth voulez vérifier la ConsoleLibrary

Je ne l'utilise pas, mais de l'article/démos il semble qu'il vous permettra de faire tas de trucs pur sur la console.

Questions connexes