system("cls")
と を使用してゲームを作成していますprintf
。フィールドの文字の 2 次元配列があります。0.5 秒ごとに画面を更新し、フィールド全体を表示しますが、画面がひどく点滅します。とにかく私はそれをスムーズにすることができますか?
私のOSはWindowsです。
質問する
137 次
2 に答える
5
ncurses(またはpdcursesは、Windowsで設定する方が簡単な場合があります)を使用します。それができない場合は、画面をクリアしないでください。ちらつきが発生します。代わりに、カーソルを左上(0、0)に再度置き、描画します。カーソルを0、0に置くには、次のようにします。
#include <windows.h>
// ...
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
COORD position = {0, 0};
SetConsoleCursorPosition(handle, position);
于 2013-01-23T08:47:26.720 に答える
1
もう1つの方法は、2番目の画面バッファーを作成することです。表示されないので、これに直接書き込むことができます。新しいフレームの準備ができたら、表示されているバッファーをこの2番目のバッファーと交換します。これにより、新しいフレームが即座に表示され、元のバッファに描画できるようになります。
この手法は広く使用されており、ダブルバッファリングとして知られています。
于 2013-01-23T10:39:00.730 に答える