MonoGame(XNA)无法检测多个控制器(使用PlayerIndex)

本文关键字:控制器 使用 PlayerIndex XNA MonoGame 检测 | 更新日期: 2023-09-27 18:18:14

我一直试图让两个控制器在我正在工作的一夫一妻制项目中工作,唯一可行的控制器是'PlayerIndex.One'。我试过切换控制器索引,它不会工作,只要它是在任何东西上,除了'PlayerIndex。一个'

这是我的代码,它运行没有错误,但它仍然不能工作。

if (Robot.IsConnected)
        {
            if (GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.A) || GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.B) || GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.Y) || GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.X))
            {
                if (GamePad.GetState(PlayerIndex.One).Buttons.Y == ButtonState.Pressed)
                {
                    Robot.SendMessage(driveRobot, straight);
                }
if (Robot2.IsConnected)
        {
            if (GamePad.GetState(PlayerIndex.Two).IsButtonDown(Buttons.A) || GamePad.GetState(PlayerIndex.Two).IsButtonDown(Buttons.B) || GamePad.GetState(PlayerIndex.Two).IsButtonDown(Buttons.Y) || GamePad.GetState(PlayerIndex.Two).IsButtonDown(Buttons.X))
            {
                if (GamePad.GetState(PlayerIndex.Two).Buttons.Y == ButtonState.Pressed)
                {
                    Robot.SendMessage(driveRobot2, straight);
                }

MonoGame(XNA)无法检测多个控制器(使用PlayerIndex)

您实际上也第二次将消息传递给Robot。不应该是Robot2

当前:

Robot.SendMessage(driveRobot2, straight);
应:

Robot2.SendMessage(driveRobot2, straight);