2012-04-02 11 views
0

私は2回カウントするタイマーを取得しようとしていますが、問題は1度は発生しますが、もう一度やり直してしまいます。私は1000FPSで動作するゲームループで自分のコードを実行しているので、インターネット上で何かを見つけることができます。Cantは正常に動作するようにタイマーを取得するC++

これはヘッダーコードです。

clock_t endBoost = clock() + 3.0f * CLOCKS_PER_SEC; 
clock_t slow = clock() + 5.0f * CLOCKS_PER_SEC; 

これはメインコードです。

bool overheat = false; 
if(overheat == false) 
{ 
    if(myEngine->KeyHeld(Key_Space)) 
    { 
     timer = clock(); 
     if(timer < endBoost) 
     { 
      stringstream outBoost; 
      outBoost << "!BOOST!"; 
      myFont->Draw(outBoost.str(), 300, 200); 
      outBoost.str(""); 
      carSpeedIncrement = 0.1f; 
     } 

    } 
} 

if(timer > endBoost) 
{ 
    overheat = true; 
} 
if(timer < slow && overheat == true) 
{ 
    overheat = false; 
    carSpeedIncrement = 0.1f; 
} 

ヘルプは評価されています。

答えて

1

endBoostslowを初期化していて、値を変更していないようです。しかし、これらはclock()の値に基づいて初期化され、決して変更されません。 timerの現在の値は、非常に迅速にendBoostslowの両方よりも大きくなり、永遠に残るでしょう。

+0

ありがとうございました。それを修正する方法を教えてください。 – bobthemac

+0

@MooingDuckなぜあなたは私の答えを編集していますか?私は「睡眠」は元の質問とは関係がないとは思わない。 – aldo

+0

あなたの答えはよかったですが、調べるサンプルタイマーがありません。私はあなたのためにそれを救済しました。 'sleep'はフレームワーク以外のコードで使用する最も単純なタイマーで、他のすべてのタイマーの中心です。 –

-1

は、私はこのコードでカウンターに似て何も表示されません

「私は2回をカウントするカウンタを取得しようとしています」。
あなたの意味ははっきりしている必要があります。

+0

私はtime.hファイル内のclock関数をカウンタとして使用しています。私はそれを使用する最初の時間が正しい時間のために働くが、それは再び働かない – bobthemac

+0

@bobthemac:時計は時計です。クロックはタイマーではありません。 –

+0

@MooingDuckでも時計はタイマーとして使うことができますが、これはインターネット上で行われる例を示しています。 – bobthemac

関連する問題