我正在使用运行Debian的Raspberry Pi上的C#进行机器人项目。我已经将PS3 DualShock控制器与操作系统配对,因此它显示为操纵杆设备/ dev / input / js0。
现在我想从C#代码访问DualShock游戏杆和按钮。这似乎比我预期的更难(或至少更加模糊) - 我发现了对OpenTK的引用,即使没有死亡,它似乎至少处于昏迷状态;和XNA,可能会这样做,但包含的方式超出了我的需要(我担心让所有工作在我的RPi上工作),以及其他各种不太受支持的小包装项目。
作为Mono,C#和Linux的新手,我在这里有点过头了......关于在这种环境下读取DualShock状态最简单/最好的方法的任何建议?
答案 0 :(得分:1)
Monogame是XNA的开源实现。它是跨平台的,并且确实以Linux为目标。你可以看看框架的Input Source Code,看看他们是如何做到的。
答案 1 :(得分:0)
单声道游戏手柄事件通常是轮询的。下面是一个非常基本的代码,用于演示检查按钮“A”状态。
GamePadState gamePadState;
gamePadState = GamePad.GetState((PlayerIndex)0); //Palyer indices are from 0-3, basically indicate the gamepad index
if (gamePadState.Buttons.A == ButtonState.Pressed)
{
//take action for button "A"
}
在访问其按钮/触发器/拇指杆状态值之前检查游戏手柄连接状态始终是一个好主意。
if (gamePadState.IsConnected)
{
//check for button/trigger/thumbstick status
}
答案 2 :(得分:-1)
你应该看一下directinput,但是对于windows来说,有一个现在的库将它包装到c#。它叫做slimDX,也许你可以让它工作