2012-02-20 110 views
1

我使用的DirectInput與XNA但由於一些奇怪的原因,當我已經實現下面的代碼我的比賽將無法啓動:遊戲無法啓動

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

這確實打破了我的比賽,註釋行工作雖然離開它打破了它。我完全不知道爲什麼。我有Microsoft.DirectX.DirectInput引用和一切。我甚至開始了一個全新的項目,只是進入了這條線,但在比賽開始時沒有運氣。

這實際上是我的完整代碼,我只是從Game1()的initialize方法中調用Input.InitializeController()

using System; 
using Microsoft.DirectX.DirectInput; 

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

有沒有人知道這個交易是與這個我完全難住。

謝謝!

+0

你能提供更多的細節嗎?它會崩潰嗎?拋出一個毫無意義的例外?如果您在調試器中傳遞該行,會發生什麼情況? – 2012-02-20 01:41:45

+0

當然我會嘗試。遊戲只是無法啓動,我必須點擊停止調試按鈕關閉它。因此它不會因爲沒有啓動而崩潰。沒有任何錯誤拋出。有趣的事情可能是這樣的:我已經將輸出類型更改爲控制檯我相信您熟悉這一點。它使得一旦我點擊調試按鈕,控制檯和遊戲窗口都會出現。隨着這條線進入控制檯出現,但實際的遊戲窗口沒有。 – MrSplosion 2012-02-20 01:50:11

+0

會重新安裝DirectX SDK的幫助? – MrSplosion 2012-02-20 02:18:48

回答

2

如果你使用XNA 4.0那麼你的問題是由於XNA不支持DirectInput的正確。

爲了使您的設備與您的程序一起工作,您需要回滾到XNA 3.1或使用允許直接輸入4.0的包裝,我建議使用包裝SlimDX。