Freigeben über


LegacyGipGameControllerProvider.GetStandardControllerButtonRemapping Methode

Definition

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

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)

Parameter

user
User

Der Benutzer, für den Controllerzuordnungen abgerufen werden sollen.

previous
Boolean

bool

True , wenn die Zuordnung aus dem inaktiven vorherigen Speicher gelesen werden soll; false , wenn die aktive Zuordnung gelesen werden soll.

Gibt zurück

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

RemappingButtonCategory Datenbeschreibung
SchaltflächenEinstellungen Ein uint64 bestehend aus 16 Knabbereien. Jedes Nibble stellt die Zuweisung einer Schaltfläche dar. Die Standardzuweisung ist 0xfedcba9876543210
AnalogSettings Ein uint32 mit den folgenden Effekten: 0x1 : Swaps triggert 0x2 : Tauscht Daumensticks 0x4 : Invertiert den linken Fingerabdruckstick 0x8 : Invertiert den rechten Fingerabdruckstick. 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 geringstmöglichen Bedeutung ist: Rechter Daumenstick, Linker Daumenstick, Rechte Schulter, Linke Schulter, DPad Rechts, DPad Links, DPad Nach unten, DPad Nach oben, Y, X, B, A, Ansicht, Menü, Guide und Bind.

In der Regel sollte der vorherige Parameter sein false, der die aktuelle Controllerzuordnung liest. Es kann auch verwendet werden, um eine Zuordnung zu lesen, die für einen späteren Zeitpunkt gespeichert wurde (z. B. um eine gespeicherte Zuordnung zu lesen, um einen vorherigen Zustand wiederherzustellen).

Achtung

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

Gilt für:

Weitere Informationen