0

私はXNAでゲームを構築していて、XNAも非常に初めてですが、どこかで始めなければなりませんでした。私のゲームのほとんどすべてが完璧に機能します。トップビューのレーシングゲームです。唯一の問題は、ボーナスを持続させたいということです。マップから3秒間などの一定時間ピックアップします。タイマーを使用する必要があることはわかっていますが、どのように使用すればよいかわかりません。

これはコードの一部であり、車がマップのタイルと衝突するときに使用します。

 if (map[x][y] == 0)
        {
            if (speedBonus)
            {
                car.speed = 450;
            }
            else
            {
                car.speed = 200;
            }

私はこの問題を修正するのに2時間ほど費やしたので、皆さんの1人がこの問題を解決してくれることを願っていますが、私のコードは私を助けてくれませんでした。前もって感謝します!

4

2 に答える 2

3

ボーナスが受け取られた時間を記録し、DateTimeオブジェクトに保存することができます。次に、メインループの各反復中に、TimeSpanが3秒より大きいかどうかを確認します。もしそうなら、ボーナスを削除します。

于 2012-11-20T21:44:42.273 に答える
0

助けてくれてありがとう、私はこのようにコードを修正しました:

上に2つの変数がある:

float timer = 3;
const float TIMER = 3;

そしてアップデートでは:

if (map[x][y] == 0)
        {
            if (speedBonus)
            {
                float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
                timer -= elapsed;

                car.speed = 450;

                if (timer <= 0)
                {
                    speedBonus = false;
                    timer = TIMER;   //Reset Timer
                }
            }
            else
            {
                car.speed = 200;
            }

それは今では魅力のように機能します、助けてくれてありがとう!

于 2012-11-20T22:20:59.517 に答える