LegacyGipGameControllerProvider.GetStandardControllerButtonRemapping 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
擷取用戶標準遊戲板的按鈕和座標軸對應。
public:
virtual IMapView<RemappingButtonCategory, Platform::Object ^> ^ GetStandardControllerButtonRemapping(User ^ user, bool previous) = GetStandardControllerButtonRemapping;
IMapView<RemappingButtonCategory, IInspectable const&> GetStandardControllerButtonRemapping(User const& user, bool const& previous);
public IReadOnlyDictionary<RemappingButtonCategory,object> GetStandardControllerButtonRemapping(User user, bool previous);
function getStandardControllerButtonRemapping(user, previous)
Public Function GetStandardControllerButtonRemapping (user As User, previous As Boolean) As IReadOnlyDictionary(Of RemappingButtonCategory, Object)
參數
- user
- User
要為其取得控制器對應的使用者。
- previous
-
Boolean
bool
True
如果應該從非使用中的上一個存放區讀取對應,則為 ; false
如果應該讀取使用中的對應,則為 。
傳回
比對每個 RemappingButtonCategory 與指定重新對應之數據的字典。 資料類型是類別特有的,如下所示:
RemappingButtonCategory | 資料描述 |
---|---|
ButtonsSettings | 由 16 個 nibbles 組成的 uint64。 每個 Nibble 都代表按鈕的指派。 標準指派0xfedcba9876543210 |
AnalogSettings | 具有下列效果的 uint32:0x1: Swaps triggers 0x2 : Swaps thumbsticks 0x4 : Inverts left thumbstick 0x8 : Inverts right Thumbstick。 標準指派為 0。 |
VibrationSettings | 具有下列效果的 uint32:0x01:停用震動。 標準指派為 0。 |
範例
void RemapButtons(IGameController controller, IGameControllerProvider controllerProvider)
{
LegacyGipGameControllerProvider legacyGipGameControllerProvider =
LegacyGipGameControllerProvider.FromGameControllerProvider(controllerProvider);
// Retrieve all current remappings set for standard controllers
IReadOnlyDictionary<RemappingButtonCategory, object> currentMappings =
legacyGipGameControllerProvider.GetStandardControllerButtonRemapping(
controller.User, false);
// Swap two of the buttons
Dictionary<RemappingButtonCategory, object> remaps =
new Dictionary<RemappingButtonCategory, object>();
// Duplicates are not allowed. Swap two of the buttons
UInt64 currentButtonMappings =
(UInt64)currentMappings[RemappingButtonCategory.ButtonSettings];
// Isolate the buttons we want to remap
UInt64 lastButton = (currentButtonMappings & 0xf000000000000000);
UInt64 secondLastButton = currentButtonMappings & 0x0f00000000000000;
// Swap their positions
UInt64 newMapping = (lastButton >> 4) | (secondLastButton << 4);
// Recombine with the original mappings
UInt64 newButtonMappings = (currentButtonMappings & 0x00ffffffffffffff) | newMapping;
// Add the new button remappings to the mapping dictionary
remaps.Add(RemappingButtonCategory.ButtonSettings, newButtonMappings);
// Update controller mapping
legacyGipGameControllerProvider.SetStandardControllerButtonRemapping(
controller.User, false, newButtonMappings);
}
備註
ButtonSettings 的按鈕順序從最顯著到最不重要是:右指桿、左指桿、右手、左手、左手、DPad Right、DPad Left、DPad Down、DPad Up、Y、X、B、A、View、Menu、Guide 和 Bind。
一般而言, 先前 的參數應該是 false
,這會讀取目前的控制器對應。 它也可以用來讀取儲存以供稍後 (的對應,以讀取已儲存的對應,以還原先前的狀態) 。
警告
控制器對應是指定使用者的全系統且持續。 這應該只會在使用者的指示下完成。