LegacyGipGameControllerProvider.GetStandardControllerButtonRemapping Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Recupera el botón y la asignación de ejes de un controlador para juegos estándar para un usuario.
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)
Parámetros
- user
- User
El usuario para el que se van a obtener asignaciones de controlador.
- previous
-
Boolean
bool
True
si la asignación debe leerse del almacén anterior inactivo; false
si se debe leer la asignación activa.
Devoluciones
Diccionario que coincide con cada RemappingButtonCategory con los datos que especifica la reasignación. El tipo de datos es específico de la categoría de la siguiente manera:
RemappingButtonCategory | Descripción de los datos |
---|---|
ButtonsSettings | Un uint64 compuesto de 16 nibbles. Cada nibble representa la asignación de un botón. La asignación estándar se 0xfedcba9876543210 |
AnalogSettings | Un uint32 con los siguientes efectos: 0x1 : intercambia desencadenadores 0x2 : intercambia los sticks analógicos 0x4 : invierte el stick analógico izquierdo 0x8 : invierte el stick analógico derecho. La asignación estándar es 0. |
VibrationSettings | Un uint32 con los siguientes efectos: 0x01 : Deshabilita la vibración. La asignación estándar es 0. |
Ejemplos
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);
}
Comentarios
El orden de los botones para ButtonSettings de lo más significativo al menos significativo es: Thumbstick derecho, Stick derecho, Hombro derecho, Hombro izquierdo, DPad Right, DPad Left, DPad Down, DPad Up, Y, X, B, A, View, Menu, Guide y Bind.
Normalmente, el parámetro anterior debe ser false
, que leerá la asignación del controlador actual. También se puede usar para leer una asignación que se guardó para más adelante (por ejemplo, para leer una asignación guardada para restaurar un estado anterior).
Precaución
La asignación de controladores es de todo el sistema y es persistente para el usuario especificado. Esto solo se debe hacer en la dirección del usuario.