共用方式為


LegacyGipGameControllerProvider.SetStandardControllerButtonRemapping 方法

定義

變更用戶標準遊戲板的按鈕和軸對應。

public:
 virtual void SetStandardControllerButtonRemapping(User ^ user, bool previous, IMapView<RemappingButtonCategory, Platform::Object ^> ^ remapping) = SetStandardControllerButtonRemapping;
void SetStandardControllerButtonRemapping(User const& user, bool const& previous, IMapView<RemappingButtonCategory, IInspectable const&> const& remapping);
public void SetStandardControllerButtonRemapping(User user, bool previous, IReadOnlyDictionary<RemappingButtonCategory,object> remapping);
function setStandardControllerButtonRemapping(user, previous, remapping)
Public Sub SetStandardControllerButtonRemapping (user As User, previous As Boolean, remapping As IReadOnlyDictionary(Of RemappingButtonCategory, Object))

參數

user
User

要重新對應控制器的使用者。

previous
Boolean

bool

True 如果對應應該儲存在非使用中的上一個存放區中,則為 ; false 如果應該套用對應,則為 。

remapping

IMapView<RemappingButtonCategory,Object>

IReadOnlyDictionary<RemappingButtonCategory,Object>

IMapView<RemappingButtonCategory,Platform::Object>

IMapView<RemappingButtonCategory,IInspectable>

比對每個 RemappingButtonCategory 與指定重新對應之數據的字典。 資料類型是類別特有的,如下所示:

RemappingButtonCategory 資料描述
ButtonsSettings 由 16 個 nibbles 組成的 uint64。 每個 Nibble 都代表按鈕的指派。 標準指派0xfedcba9876543210
AnalogSettings 具有下列效果的 uint32:0x1: Swaps triggers / 0x2 : Swaps Thumbsticks / 0x4 : 反轉左指桿 / 0x8 :反轉右指桿。 標準指派為 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,這會套用重新對應。 它也可以用來儲存對應以供稍後 (,例如,在套用自定義對應之前儲存默認對應,以便稍後還原預設對應) 。

警告

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

適用於

另請參閱