【问题标题】:Game Wont Start游戏无法开始
【发布时间】:2012-02-20 01:34:35
【问题描述】:

我将 DirectInput 与 XNA 一起使用,但是由于某些奇怪的原因,当我实现以下代码时,我的游戏将无法启动:

DeviceList gameControllerList = Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);

这真的破坏了我的游戏,评论这行作品虽然留下它破坏了它。我完全不知道为什么。我引用了Microsoft.DirectX.DirectInput 和所有内容。我什至开始了一个全新的项目,刚刚进入那条线,但在游戏启动时没有运气。

这实际上是我的完整代码,我只是从Game1() 的初始化方法中调用Input.InitializeController()

using System;
using Microsoft.DirectX.DirectInput;

namespace InputTesting{
    class Input{
        public void InitializeController(){
            DeviceList gameControllerList = Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);
        }
    }
}

有谁知道这是怎么回事,我完全被难住了。

谢谢!

【问题讨论】:

  • 你能提供更多细节吗?它会崩溃吗?抛出一个未经处理的异常?如果您在调试器中单步通过该行会发生什么?
  • 当然我会试试的。游戏根本无法启动,我必须点击停止调试按钮才能将其全部关闭。因此它不会因为没有启动而崩溃。从来没有抛出任何错误。有趣的事情可能是这样的:我已经将输出类型更改为控制台我相信您对此很熟悉。这样一来,一旦我按下调试按钮,控制台和游戏窗口都会出现。使用该行输入控制台会出现,但实际的游戏窗口不会。
  • 重新安装 DirectX SDK 有帮助吗?

标签: c# xna directinput


【解决方案1】:

如果您使用的是 XNA 4.0,那么您的问题是由于 XNA 没有正确支持 DirectInput。

为了让您的设备与您的程序一起工作,您需要回滚到 XNA 3.1 或使用允许在 4.0 中直接输入的包装器,我建议使用包装器 SlimDX。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-14
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多