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按下 AND (​​它是,因为您刚刚将其设置为PreviousCarHeadlights)。falsefalse

换句话说:只要按下 DPad,无论其先前的状态如何,您的前灯将始终切换,因为if (!PreviousCarHeadlights)它是重言式(意思是,它将始终解析为true

此处给出的答案是:在处理切换时,您只需要切换输入即可。跟踪游戏手柄之前的状态意味着您将始终知道之前按下了哪个按钮。bool这比为每个可以切换的按钮跟踪许多要好得多。

于 2013-02-20T16:53:32.893 回答