내 게임 패드에 액세스하려면 Microsoft DirectX를 사용하고 있습니다.조이스틱 + C# : 아날로그 단추
이
가 내가 버튼을 누를 때와 축의 또한 아날로그 값 때 알고에 대한 액세스를 얻을 수...
것은이 존재하는 경우 : 이것은이 하나의 같은 USB 게임 패드입니다 아날로그 버튼을 눌렀을 때 알 수있는 방법입니다 (빨간색 표시등이 켜짐).
그럴 수 있습니까? 방법?
내 게임 패드에 액세스하려면 Microsoft DirectX를 사용하고 있습니다.조이스틱 + C# : 아날로그 단추
이
가 내가 버튼을 누를 때와 축의 또한 아날로그 값 때 알고에 대한 액세스를 얻을 수...
것은이 존재하는 경우 : 이것은이 하나의 같은 USB 게임 패드입니다 아날로그 버튼을 눌렀을 때 알 수있는 방법입니다 (빨간색 표시등이 켜짐).
그럴 수 있습니까? 방법?
프로젝트에 SlimDX 또는 SharpDX을 권하고 싶습니다. DirectX API를 지원하며 매우 간단합니다.
SlimDX :
using SlimDX.DirectInput;
새로운 DirectInput의 객체 생성 : 취급에 대한 다음
DirectInput input = new DirectInput();
GameController 클래스 :
public class GameController
{
private Joystick joystick;
private JoystickState state = new JoystickState();
}
을 그리고 다음과 같이 사용 :
를public GameController(DirectInput directInput, Game game, int number)
{
// Search for Device
var devices = directInput.GetDevices(DeviceClass.GameController, DeviceEnumerationFlags.AttachedOnly);
if (devices.Count == 0 || devices[number] == null)
{
// No Device
return;
}
// Create Gamepad
joystick = new Joystick(directInput, devices[number].InstanceGuid);
joystick.SetCooperativeLevel(game.Window.Handle, CooperativeLevel.Exclusive | CooperativeLevel.Foreground);
// Set Axis Range for the Analog Sticks between -1000 and 1000
foreach (DeviceObjectInstance deviceObject in joystick.GetObjects())
{
if ((deviceObject.ObjectType & ObjectDeviceType.Axis) != 0)
joystick.GetObjectPropertiesById((int)deviceObject.ObjectType).SetRange(-1000, 1000);
}
joystick.Acquire();
}
마지막 방법에 따라 국가를 얻을 :
public JoystickState GetState()
{
if (joystick.Acquire().IsFailure || joystick.Poll().IsFailure)
{
state = new JoystickState();
return state;
}
state = joystick.GetCurrentState();
return state;
}
네, 구조상 비슷한 것을 사용하고 있습니다. Microsoft Direct X를 사용하는 이유 ... SLIM/SHARP가 더 좋은 이유는 무엇입니까? 게임 패드의 붉은 빛 상태에 대한 지식을 얻을 수 있었습니까? –
좋은 래퍼이고 프레임 워크의 일부 기능을 선호합니다. 레드 라이트 들어 조이스틱에 포함됩니다 것이 좋습니다 .GetObjects(). – Smartis
고마워요 @ 스 마트리스 나는 그걸 위해 조이스틱을 확인하겠습니다 .GetObjects() ... 만약 z 축이 사용 가능한지 알기 위해 아날로그가 켜져 있는지 알아야합니다 ... –
당신은 무엇을 의미합니까 : 당신은 L2/R2가하거나 압력에 민감한 얼굴 버튼을 참조하는 트리거에 대해 * 아날로그 버튼 * 말을하는거야? – Nolonar
x, y, z 축을위한 전위차계를 가능하게하는 버튼을 의미합니다. 빨간불을 켭니다. –
아니요, 입력 버튼이 아니기 때문에 가능하지 않습니다. 입력 버튼이 하드웨어 작동 방식을 변경합니다. –