LegacyGipGameControllerProvider.GetStandardControllerButtonRemapping Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Recupera il pulsante e il mapping dell'asse di un gamepad standard per un utente.
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)
Parametri
- user
- User
L'utente per ottenere i mapping del controller per.
- previous
-
Boolean
bool
True
se il mapping deve essere letto dall'archivio precedente inattivo; false
se il mapping attivo deve essere letto.
Restituisce
Dizionario che corrisponde a ogni remappingButtonCategory ai dati che specifica il mapping. Il tipo di dati è specifico della categoria come indicato di seguito:
RemappingButtonCategory | Descrizione dei dati |
---|---|
ButtonSettings | Uint64 composto da 16 nibbles. Ogni nibble rappresenta l'assegnazione di un pulsante. L'assegnazione standard è 0xfedcba9876543210 |
AnalogicSettings | Un oggetto uint32 con gli effetti seguenti: 0x1 : scambi attiva 0x2 : scambia le levette personale 0x4 : inverte la 0x8 del pollice sinistro : inverte il pollice destro. L'assegnazione standard è 0. |
VibrazioniSettings | Uint32 con gli effetti seguenti: 0x01 : Disabilita la vibrazione. L'assegnazione standard è 0. |
Esempio
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);
}
Commenti
L'ordine dei pulsanti per ButtonSettings dal più significativo al minimo significativo è: Pollice destro, Pollice sinistro, Spalla destra, Spalla sinistra, DPad Destro, DPad Sinistro, DPad Down, DPad Up, Y, X, B, A, View, Menu, Guide e Bind.
In genere, il parametro precedente deve essere false
, che leggerà il mapping del controller corrente. Può essere usato anche per leggere un mapping salvato per un secondo momento, ad esempio per leggere un mapping salvato per ripristinare uno stato precedente.
Attenzione
Il mapping del controller è a livello di sistema e persistente per l'utente specificato. Questa operazione deve essere eseguita solo in base alla direzione dell'utente.