私はゲームのMVPを書いています。しかし今、私はそれにストップウォッチを追加して、プレイヤーがゲームの左下隅または右下隅にカウントダウンされている時間を見ることができるようにします。これは、そのようなストップウォッチを作成する方法、それを私のゲームにどのように含めるかについての質問ではありません。ゲームにタイマーを追加するスレッドを実装する方法は?
私は、画面上に時計の数字をレンダリングする方法を考え出しましたが、問題は、私は時計をオフにトリガするために、任意の入力を使用する場合、ゲームがクロックループに陥ったままということです。ここで説明するいくつかのコードは:T1の出力を介して表示され
// when the player makes her first input the clock is triggered
if (!CLOCK)
this->clockStatus(ON);
// within the clockStatus function
void Game::clockStatus(TimerState Status)
{
do { /* Infinite Loop */
t2->getTimefromSeconds(getCurrentSysTime());
break;
} while (1);
while (1) { /* Another infinite loop */
t_inter->getTimefromSeconds(getCurrentSysTime());
t1 = (Timer*)(t_inter - t2);
}
}
:明確にするため
t1.display();
、TimeStateはストップウォッチの状態を管理する列挙である(ON/OFF)タイマです。実際のストップウォッチクラス。私はプレイヤーがストップウォッチをオフトリガーゲーム、に彼らの最初の入力を行ったとき、私はこのための新しいスレッドを作成するべきであると結論している研究の後
。このように、メイン関数は正常に実行され、セカンダリスレッドはゲーム時間を計算できます。これを実装する方法について私が読むことができるチュートリアルやpdfやエクササイズはありますか?また、すべての有益な提案を歓迎します。
Surmisingあなたはこのような状況では、 'threads'を必要とする、あなたは途中でそこにいます。ディスプレイ/レンダリングに使用しているプラットフォームの種類を知ることは役に立ちます。たとえば、Qtを使用している場合は、QtのTimerクラスを簡単に使用できます。それはウィジェット表示システムがそのままマルチスレッドです。 – Quirk
'Timer'は何か、そしてどのようなタイプは、' t1'、 't2'、と' t_inter'ですか? – qxz
OpenGLとGLFWを使用しています。しかし、私はC++ – MagnusHimmler