6

私の質問が少しお粗末に思えても申し訳ありませんが、答えが見つかりません。XNAゲームにDirectInputを使用したいと思います。読んだことがありますが、これがXBox360コントローラー以外のゲームパッドから入力を取得するための最良の方法のようです。最初のステップは、Microsoft.DirectX.DirectInput名前空間を含めることですが、その方法はよくわかりません。クラスの最初に挿入するだけでは機能せず、ビジュアルC#はそれを認識しません。

これにより、DirectX SDKをダウンロードする必要があると思いましたか?そこにはたくさんのものがあり、ファイルは大きいです。単一の名前空間をダウンロードするにはどうすればよいですか?これも可能ですか?単一の名前空間をダウンロードできる場合、ファイルはどこに配置しますか?

今、あなたは私の頭の中ですべての質問がぶらぶらしているのを見ることができます。では、Visual C#でMicrosoft.DirectX.DirectInput名前空間を認識させて、メソッド、プロパティ、その他すべての優れた機能を使用できるようにするにはどうすればよいでしょうか。

ありがとう!

4

3 に答える 3

6

使用するコード ライブラリを含む DLL への参照を設定する必要があります。おそらくそれは SDK の一部なので、ダウンロードする必要があります。次に、Visual Studio で

  • ソリューション エクスプローラーを開く
  • ライブラリを使用するプロジェクトを開きます
  • そのプロジェクトの参照ノードを右クリックします
  • 「参照を追加」を選択
  • dllに移動して選択します

参照を正常に追加すると、VS は using ディレクティブ (およびアセンブリから使用したすべての型) を認識する必要があります。

アセンブリへの参照が行われることに注意してください。アセンブリは名前空間と同じではありません。初心者はしばしばこの 2 つを混同します。異なるアセンブリで定義されている型は、同じ名前空間に存在できます。BCL には、この例が多数あります。

さらに、「using」ディレクティブは、何もロードしたり、そのようなことを引き起こしません。名前を完全修飾せずに型を指定できるようにするだけです。実際、usingディレクティブを使用せずに C# でコーディングすることは可能です。たとえば、次のコード ファイルは同等です。

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);
    }
}
于 2012-02-17T23:16:37.040 に答える
1

SDKをダウンロードします。アプリと一緒に再配布されることはありませんが、DirectXアプリを開発するために必要なものはすべてそこに含まれます。インストールすると、[参照の追加]ダイアログに新しいエントリが表示されます。

于 2012-02-17T23:16:16.877 に答える
0

DirectX を利用するには、SDK をダウンロードする必要があります。

その一部をダウンロードすることは単に不可能です。たとえそうだったとしても、私は決してそれをお勧めしません。

于 2012-02-17T23:17:19.960 に答える