0

5 秒後にプレイヤーのスコアをインクリメントするのに少し行き詰まりました。最終的には、同じロジックを使用して、すべての異なる期間の後にスコアを「x」ずつインクリメントできるようにしたいと考えています。現時点では、スコアは 10 ずつ増加していますが、1 秒あたり 60 回です (update メソッドが 1 秒あたり 60 回呼び出されるため)。これは、スコアが 10 ではなく 560 になることを意味します。

isPreviousScoreChangedボタンが押されて離されたかどうかを検出するときのように、やなどの変数を使用しようと考えisCurrentScoreChangedていましたが、これもうまく機能していません。

このクラスを使用してStopwatch、ゲームの開始から経過した秒数を追跡しています。

コードはかなりです:

if (Stopwatch.ElapsedTicks == 5)
{
    playerScore += 10;
}

[ここにコードを貼り付けることができることは知っていますが、貼り付けるものはあまりなく、これまでに行ったことは非常に簡単です]

みんな読んでくれてありがとうv :-)

4

2 に答える 2

1

次のようにします。

if (timer > TimeSpan.Zero)
{
   timer -= gameTime.ElapsedGameTime;
   if (timer <= TimeSpan.Zero)
   {
       playerScore += 10;
       timer = TimeSpan.Zero;
   }
}

もちろん、設定する必要がありますtimer = new TimeSpan(0, 0, 5);

于 2013-09-08T19:07:33.093 に答える