Compartir a través de


LegacyGipGameControllerProvider.SetStandardControllerButtonRemapping Método

Definición

Cambia el botón y la asignación de ejes de un controlador para juegos estándar para un usuario.

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))

Parámetros

user
User

Usuario para el que se va a reasignar el controlador.

previous
Boolean

bool

True si la asignación debe almacenarse en el almacén anterior inactivo; false si se debe aplicar la asignación.

remapping

IMapView<RemappingButtonCategory,Object>

IReadOnlyDictionary<RemappingButtonCategory,Object>

IMapView<RemappingButtonCategory,Platform::Object>

IMapView<RemappingButtonCategory,IInspectable>

Diccionario que coincide con cada RemappingButtonCategory con los datos que especifican 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 por 16 nibbles. Cada nibble representa la asignación de un botón. La asignación estándar es 0xfedcba9876543210
AnalogSettings Un uint32 con los siguientes efectos: 0x1 : intercambia desencadenadores / 0x2 : intercambia sticks de pulgar / 0x4 : invierte el stick pulgar izquierdo / 0x8 : invierte el stick digital derecho. La asignación estándar es 0.
VibrationSettings 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: Pulgar derecho, Stick pulgar izquierdo, Hombro derecho, Hombro izquierdo, DPad Derecha, DPad Izquierda, DPad Abajo, DPad Up, Y, X, B, A, Ver, Menú, Guía y Enlazar.

Normalmente, el parámetro anterior debe ser false, que aplicará la reasignación. También se puede usar para guardar una asignación para más adelante (por ejemplo, para guardar la asignación predeterminada antes de aplicar una asignación personalizada, de modo que la asignación predeterminada se pueda restaurar más adelante).

Precaución

La asignación de controladores es en todo el sistema y es persistente para el usuario determinado. Esto solo debe hacerse en la dirección del usuario.

Se aplica a

Consulte también