LegacyGipGameControllerProvider.GetStandardControllerButtonRemapping Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.