我在XNA中使用DirectInput但是由于某些奇怪的原因,当我实现以下代码时,我的游戏将无法启动:
DeviceList gameControllerList = Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);
这真的打破了我的游戏,评论线路工作虽然让它打破它。我完全不知道为什么。我引用了Microsoft.DirectX.DirectInput
和一切。我甚至开始了一个全新的项目,只是进入了那条线,但在游戏启动时没有运气。
这是我的完整代码,我只是从Input.InitializeController()
中的initialize方法调用Game1()
。
using System;
using Microsoft.DirectX.DirectInput;
namespace InputTesting{
class Input{
public void InitializeController(){
DeviceList gameControllerList = Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);
}
}
}
有谁知道这笔交易是什么,我完全被难倒了。
谢谢!
答案 0 :(得分:2)
如果您使用的是XNA 4.0,那么问题在于XNA不能正确支持DirectInput。
为了让您的设备使用您的程序,您需要回滚到XNA 3.1或使用允许4.0中的直接输入的包装器,我建议使用包装器SlimDX。