LegacyGipGameControllerProvider.SetStandardControllerButtonRemapping 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.
Ä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,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.