LegacyGipGameControllerProvider.SetStandardControllerButtonRemapping Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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,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.