共用方式為


LegacyGipGameControllerProvider.GetStandardControllerButtonRemapping 方法

定義

擷取用戶標準遊戲板的按鈕和座標軸對應。

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,這會讀取目前的控制器對應。 它也可以用來讀取儲存以供稍後 (的對應,以讀取已儲存的對應,以還原先前的狀態) 。

警告

控制器對應是指定使用者的全系統且持續。 這應該只會在使用者的指示下完成。

適用於

另請參閱