Freigeben über


LegacyGipGameControllerProvider.SetStandardControllerButtonRemapping Methode

Definition

Ändert die Schaltflächen- und Achsenzuordnung eines Standard-Gamepads für einen Benutzer.

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))

Parameter

user
User

Der Benutzer, für den der Controller neu zugeordnet werden soll.

previous
Boolean

bool

True , wenn die Zuordnung im inaktiven vorherigen Speicher gespeichert werden soll; false , wenn die Zuordnung angewendet werden soll.

remapping

IMapView<RemappingButtonCategory,Object>

IReadOnlyDictionary<RemappingButtonCategory,Object>

IMapView<RemappingButtonCategory,Platform::Object>

IMapView<RemappingButtonCategory,IInspectable>

Ein Wörterbuch, das jedes RemappingButtonCategory mit Daten abgleicht, das die Neuzuordnung angibt. Der Datentyp ist für die Kategorie wie folgt spezifisch:

RemappingButtonCategory Datenbeschreibung
SchaltflächenEinstellungen Ein uint64 aus 16 Knabbereien. Jedes Nibble stellt die Zuweisung einer Schaltfläche dar. Die Standardzuweisung ist 0xfedcba9876543210
AnalogSettings A uint32 with the following effects: 0x1 : Swaps triggers / 0x2 : Swaps thumbsticks / 0x4 : Inverts the left thumbstick / 0x8 : Inverts the right thumbstick. Die Standardzuweisung ist 0.
VibrationSettings Ein uint32 mit den folgenden Effekten: 0x01 : Deaktiviert Vibrationen. Die Standardzuweisung ist 0.

Beispiele

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);
}

Hinweise

Die Reihenfolge der Schaltflächen für ButtonSettings von der wichtigsten bis zur geringsten Bedeutung ist: Rechter Daumenstick, linker Daumenstick, rechte Schulter, Linke Schulter, DPad Rechts, DPad Links, DPad Down, DPad Up, Y, X, B, A, Ansicht, Menü, Guide und Bind.

In der Regel sollte der vorherige Parameter sein false, wodurch die Neuzuordnung angewendet wird. Sie kann auch verwendet werden, um eine Zuordnung für einen späteren Zeitpunkt zu speichern (z. B. zum Speichern der Standardzuordnung vor dem Anwenden einer benutzerdefinierten Zuordnung, sodass die Standardzuordnung später wiederhergestellt werden kann).

Achtung

Die Controllerzuordnung ist systemweit und für den jeweiligen Benutzer persistent. Dies sollte nur auf Die Anweisung des Benutzers erfolgen.

Gilt für:

Weitere Informationen