Как я могу определить структуру со строкой? - PullRequest
0 голосов
/ 08 марта 2011

у меня

public string[] ButtonList()
{
    string[] buttons = { "A", "B", "Back", "BigButton", "etc..." }
    return buttons;
}

private void EchoButtons()
{
    for (int i = 0; i < ButtonList().Length; i++)
    {
        if (GamePad.GetState(PlayerIndex.One).Buttons.A == ButtonState.Pressed)
        {
            // Echo the buttons
        }
    }
}

В любом случае я мог бы использовать строку из массива для определения кнопки? Пример (хотя это не работает):

for (int i = 0; i < ButtonList().Length; i++)
{
    if (GamePad.GetState(PlayerIndex.One).Buttons.ButtonList()[i] == ButtonState.Pressed)
    {
        // Echo the buttons
    }
}

Редактировать: я надеюсь, что это имеет смысл, я не был уверен, что объяснил это хорошо.

1 Ответ

2 голосов
/ 08 марта 2011

Вы можете использовать список делегатов, имеющих GamePadState в качестве параметра, и возвращать состояние для нужных кнопок.

var getButtonState = new List<Func<GamePadState, ButtonState>>
{
    s => s.Buttons.A,
    s => s.Buttons.B,
    ...
};

// Example to get the state of the first item in the list.
ButtonState state = getButtonState[0]( GamePad.GetState( PlayerIndex.One ) );
...