86 lines
2.1 KiB
C#

using ANX.Framework;
using ANX.Framework.Input;
using ANX.Framework.NonXNA;
// This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license
namespace ANX.InputDevices.Test
{
public class GamePad : IGamePad
{
public GamePadCapabilities GetCapabilities(PlayerIndex playerIndex)
{
return new GamePadCapabilities();
}
public GamePadState GetState(PlayerIndex playerIndex)
{
GamePadState gamepad;
switch (playerIndex)
{
case PlayerIndex.One:
gamepad = new GamePadState(new Vector2(100, 100), new Vector2(100, 100), 0.5f, 0.5f, Buttons.A, Buttons.B)
{
IsConnected = true,
PacketNumber = 0,
};
break;
case PlayerIndex.Two:
gamepad = new GamePadState(new Vector2(200, 200), new Vector2(100, 100), 0.5f, 0.5f, Buttons.A,
Buttons.BigButton)
{
IsConnected = true,
PacketNumber = 0,
};
break;
case PlayerIndex.Three:
gamepad = new GamePadState(new Vector2(100, 100), new Vector2(100, 100), 0.5f, 0.5f, Buttons.A, Buttons.X)
{
IsConnected = true,
PacketNumber = 0,
};
break;
case PlayerIndex.Four:
default:
gamepad = new GamePadState()
{
IsConnected = false,
PacketNumber = 0,
};
break;
}
return gamepad;
}
public GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode)
{
return GetState(playerIndex);
}
public bool SetVibration(PlayerIndex playerIndex, float leftMotor, float rightMotor)
{
switch (playerIndex)
{
case PlayerIndex.One:
return (leftMotor == 0.5f && rightMotor == 0.5f);
case PlayerIndex.Two:
return (leftMotor == 0.7f && rightMotor == 0.5f);
case PlayerIndex.Three:
return (leftMotor == -0.5f && rightMotor == 0.7f);
case PlayerIndex.Four:
return (leftMotor == 0.5f && rightMotor == 0.5f);
}
return false;
}
}
}