Compartir a través de


LegacyGipGameControllerProvider.GetStandardControllerButtonRemapping Método

Definición

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.

Se aplica a

Consulte también