0

左の十字キーにトグルを入れようとしましたが、機能しません

private void SerialTimer_Tick(object sender, EventArgs e)
    {
        bool PreviousCarHeadlights = false;

        if (controls.DPad.Left & !PreviousCarHeadlights)
        {
            CarHeadlightsCheckBox.Checked = !CarHeadlightsCheckBox.Checked;
            PreviousCarHeadlights = !PreviousCarHeadlights;
        }
    }

誰かがこれを見て助けてくれませんか。

4

1 に答える 1

1

コードを順番に見ていくと、答えは明らかです。

最初に に設定PreviousCarHeadlightsfalse、次にcontrols.DPad.Leftが押されていて ANDPreviousCarHeadlightsであるかどうかを確認しますfalse(これは、 に設定したためですfalse)。

言い換えれば、以前の状態に関係なく、DPad が押されている限り、ヘッドライトは常にトグルしif (!PreviousCarHeadlights)ますtrue

ここに与えられた答え:トグルを扱うときに必要なのは入力のトグルだけです。ゲームパッドの以前の状態を追跡することは、以前にどのボタンが押されたかを常に知ることを意味します。bool切り替えることができるボタンごとに多くを追跡するよりもはるかに優れています。

于 2013-02-20T16:53:32.893 に答える