0

さて、ゲームループが実行されるたびに更新したい弾丸オブジェクトの配列があります。更新メソッドが呼び出されたときに、マウスをクリックするかキーを押したときに1つの弾丸を発射したいのですが、キーボードまたはマウスの発射ボタンを押すたびに、配列内のすべてのオブジェクトが発射されるように見えます。これは以前は適切でしたが、私の人生では、どこが間違っているのかわかりません。何か提案はありますか?

私のゲームの更新メソッドのコードは次のとおりです。

for (int i = 0; i < maxbullets; i++)
{
    bullets[i].update_bulets(gametime, Position, velocity,
                             rotation, viewport, keystate,
                             gamepadstate, bulletsound);
}
4

1 に答える 1

0

すべての古いファイルをトローリングした後、小さなマーカーを使用して発射ボタンを押した回数を追跡することで、タンクフルに(「タンク」しゃれが意図されていました)解決できました。質問を投稿して答えるだけではありません。自分で答えを見つけることができたので、誰かが私と同じくらい役に立つと思ってくれることを願っています. 私のプロジェクトに戻る時間です:)

        if ((previousgamepadstate.IsButtonUp(Buttons.RightTrigger) && gamepadstate.IsButtonDown(Buttons.RightTrigger))
            || (previouskeyboardstate.IsKeyUp(Keys.F) && keystate.IsKeyDown(Keys.F)))
        {

            bullets[currentbullet].alive = true;

            if (currentbullet < maxbullets - 1)
            {
                currentbullet++;
                bulletsound.Play();
            }
            else
            {
                currentbullet = 0;
            }
        }

        foreach (Bullets bullet in bullets)
        {
            bullet.update_bulets(gametime, Position, velocity, rotation, viewport, bulletsound);
        }
于 2012-08-26T23:48:57.737 に答える