Partager via


LegacyGipGameControllerProvider.SetStandardControllerButtonRemapping Méthode

Définition

Modifie le mappage de bouton et d’axe d’un boîtier de commande standard pour un utilisateur.

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

Paramètres

user
User

Utilisateur pour lequel remapper le contrôleur.

previous
Boolean

bool

True si le mappage doit être stocké dans le magasin Précédent inactif ; false si le mappage doit être appliqué.

remapping

IMapView<RemappingButtonCategory,Object>

IReadOnlyDictionary<RemappingButtonCategory,Object>

IMapView<RemappingButtonCategory,Platform::Object>

IMapView<RemappingButtonCategory,IInspectable>

Dictionnaire correspondant à chaque RemappingButtonCategory aux données qui spécifient le remapping. Le type de données est spécifique à la catégorie comme suit :

RemappingButtonCategory Description des données
ButtonsSettings Un uint64 composé de 16 grbbles. Chaque nibble représente l’affectation d’un bouton. L’affectation standard est 0xfedcba9876543210
AnalogSettings Uint32 avec les effets suivants : 0x1 : Permuter les déclencheurs / 0x2 : Permuter les manettes / 0x4 : inverse la manette gauche / 0x8 : inverse la touche droite. L’affectation standard est 0.
VibrationSettings Uint32 avec les effets suivants : 0x01 : Désactive les vibrations. L’affectation standard est 0.

Exemples

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

Remarques

L’ordre des boutons pour ButtonSettings du plus significatif au moins significatif est le suivant : Pouce droit, Pouce gauche, Épaule droite, Épaule gauche, DPad Droite, DPad Gauche, DPad Vers le bas, DPad haut, Y, X, B, A, Affichage, Menu, Guide et Liaison.

En règle générale, le paramètre précédent doit être false, qui applique le remapping. Il peut également être utilisé pour enregistrer un mappage pour plus tard (par exemple, pour enregistrer le mappage par défaut avant d’appliquer un mappage personnalisé, afin que le mappage par défaut puisse être restauré ultérieurement).

Attention

Le mappage de contrôleur est persistant à l’échelle du système pour l’utilisateur donné. Cette opération ne doit être effectuée qu’à la direction de l’utilisateur.

S’applique à

Voir aussi