4

ゲームループをいじって、練習としていくつかのゲームを作成します。

現在、ゲームが可能な限り高速に更新され、レンダリングが 1 秒あたり x 回 (現在 25 回) 更新される安定したゲーム ループ アップがあります。

レンダリング方法は基本的に描画 + Console.Clear() であり、非常に高い更新では、Console.Clear() がヒットしたときに描画が終了していないため、表示が非常に不安定になります。

このようなことを行うより良い方法はありますか?

コンソールにデータを書き込んで、それを他のデータに置き換えることはできますか?

4

3 に答える 3

5

すべてのループで再び左上からフルスクリーンを書き込むと仮定すると、単純に Clear() を次のように置き換えることができます。

 Console.SetCursorPosition(0, 0);

そして、前の画面を上書きします。

于 2009-08-15T21:18:16.053 に答える
3

とにかく C# を使用しているため、 XNA Frameworkを調べてみてください。

Console.Clear()XNAは同様のメソッドを使用するため、この種の使用に最適化されていないために問題が発生していると思います( Clear()a で呼び出されますGraphicsDevice)。

XNA を使用したくない場合はClear()、画面を「空白」にしてからその上に描画するよりも、四角形 (黒または灰色など) を描画する方が速い可能性があります。

于 2009-08-15T21:09:41.983 に答える
1

あなたはConsoleLibraryをチェックアウトしたいかもしれませ

私はそれを使用しませんでしたが、記事/デモから、コンソールで多くの優れた機能を実行できるように思われます.

于 2009-08-15T21:13:30.057 に答える