在C#中使用DirectX處理用戶輸入可以通過DirectInput來實現。下面是一個簡單的示例代碼,展示了如何使用DirectInput來處理鍵盤輸入:
using Microsoft.DirectX.DirectInput;
Device keyboard;
void InitializeInput()
{
DirectInput directInput = new DirectInput();
keyboard = new Device(SystemGuid.Keyboard);
keyboard.SetCooperativeLevel(this, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive);
keyboard.Acquire();
}
void HandleInput()
{
keyboard.Poll();
KeyboardState state = keyboard.GetCurrentKeyboardState();
if (state[Key.W])
{
//處理按下W鍵的邏輯
}
if (state[Key.S])
{
//處理按下S鍵的邏輯
}
//處理其他按鍵的邏輯
}
在上面的示例中,首先通過DirectInput類創建了一個DirectInput對象,然后創建了一個鍵盤設備對象。在初始化階段,設置鍵盤設備的協作級別,并調用Acquire方法來獲取鍵盤設備。在處理輸入時,首先調用Poll方法來更新鍵盤設備的狀態,然后通過GetCurrentKeyboardState方法獲取當前鍵盤狀態。最后根據鍵盤的狀態來處理相應的邏輯。
除了鍵盤輸入外,DirectInput也可以處理鼠標、游戲手柄等其他輸入設備的輸入。在處理不同類型的輸入設備時,需要創建相應的設備對象并進行相應的設置。