我有
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
}
}
编辑:我希望这是有道理的,我不确定我是否解释得很好。
答案 0 :(得分:2)
您可以使用以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 ) );