2016-03-19 8 views
-4

私はゲームを作っています。締め切りにするには入力機能が必要です。その時間をコンソールコーナーの1つに表示します。 別のスレッドでタイマーを実行しています。 私は彼がどれだけの時間を残しているかを見せたいと思っています。最初の行の最後にvaribale TimeLeftを書いて、他のすべての行はそのままにしておきます。 コンソールウィンドウ内の特定の場所に変数を表示/表示/出力する機能があります。 C++、Windowsプラットフォーム、コンソールアプリケーションでの作業Windowsコンソールベースのゲーム

+0

[this](http://stackoverflow.com/questions/36092262/resetting-or-clearing-line-in-c-output/36092727#36092727) – ZDF

+0

あなたの以前の(閉じた)質問が重複しています。 – halfer

答えて

1

Windowsでは、SetConsoleCursorPosition()を使用して、コンソールでprint/coutからの出力が書き込まれる位置を設定できます。関数にコンソールハンドルとCOORD構造体を渡す必要があります。 GetStdHandle()でハンドルを取得できます。

HANDLE hndl=GetStdHandle(STD_OUTPUT_HANDLE); 
COORD pos={0,0}; 
SetConsoleCursorPosition(hndl, pos); 

しかし、なぜあなたは別のスレッドであなたのタイマーを実行している:ここでは

https://msdn.microsoft.com/en-us/library/windows/desktop/ms686025%28v=vs.85%29.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms683231%28v=vs.85%29.aspx

は簡単な例ですか?それをする必要はありません。ゲームの開始からの経過時間を測定し(例:How to use clock() in C++の例を参照)、合計制限時間から経過時間を差し引くだけです。

+0

私は* * SetConsoleCursorPositionがグローバルなので、それをスレッドで使用するとメインスレッドからの出力に干渉する可能性があると思います。 WriteConsoleOutputが良い選択かもしれません。 –

関連する問題