2012-02-17 34 views
4

很抱歉,如果我的问题似乎有点noobish,但我无法找到答案。我想为我的XNA游戏使用DirectInput。我已经阅读,看来这是从XBox 360控制器以外的游戏手柄获取输入的最佳方式。第一步是包含Microsoft.DirectX.DirectInput命名空间,但我不太清楚。简单地把它放在我的课堂开始时是行不通的,Visual C#不会识别它。如何将其他名称空间导入Visual C#?

这让我想到应该下载DirectX SDK吗?那里有很多东西,文件很大,我怎样才能下载单个命名空间?这甚至有可能吗?如果我可以下载单个命名空间,我将文件放在哪里?

现在你可以看到我脑中所有的问题。那么,如何使Visual C#识别Microsoft.DirectX.DirectInput命名空间,这样我就可以使用方法,属性和所有的好东西?

谢谢!

+0

你也可以看看使用SlimDX为DirectInput的一个很好的托管包装。 – 2012-02-19 03:44:07

回答

6

您需要设置对包含您要使用的代码库的DLL的引用。推测这是SDK的一部分,所以是的,你应该下载它。然后,在Visual Studio

  • 打开解决方案资源管理器
  • 打开项目要使用的库
  • 右键单击引用节点为该项目
  • 选择“添加引用”
  • 导航到并选择该DLL

一旦您成功添加引用,VS应该识别using指令(以及任何类型你从组装中使用过)。

请注意,参考组件;组件是不一样的命名空间。初学者经常混淆两者。在不同程序集中定义的类型可以位于同一个名称空间中; BCL有几十个这样的例子。

此外,“使用”指令不会导致任何东西被加载或类似的东西;它只是允许您指定类型而不需要完全限定名称。事实上,可以用C#编写代码,而不必使用using指令。例如,下面的代码文件是相同的:

using System.Collections.Generic; 
public static class Collector 
{ 
    public static ICollection<T> Collect(IEnumerable<T> enumerable) 
    { 
     return new List<T>(enumerable); 
    } 
} 

public static class Collector 
{ 
    public static System.Collections.Generic.ICollection<T> Collect(System.Collections.Generic.IEnumerable<T> enumerable) 
    { 
     return new System.Collections.Generic.List<T>(enumerable); 
    } 
} 
+0

我已经安装了SDK,当我请按照下列步骤弹出一个消息说....无法添加DLL”“的参考”。请确保该文件是可访问的,并且它是一个有效的程序集或COM组件。“你知道我该如何解决这个问题吗?我知道这是可能的,因为这个人做了它,看看他的代码中的第二行。 //stackoverflow.com/questions/5604492/how-to-use-directx-directinput-in-xna – MrSplosion 2012-02-18 01:30:41

1

下载SDK。它不会被重新分配给你的应用程序..但是你需要的所有设备都将被包含在那里。安装后,将在“添加引用”对话框中添加新条目。

0

为了利用DirectX的你将需要下载SDK。

根本无法下载它的一部分。即使是这样,我也不会推荐这么做。

相关问题