LegacyGipGameControllerProvider.GetStandardControllerButtonRemapping 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.
Récupère le mappage de bouton et d’axe d’un boîtier de commande standard pour un utilisateur.
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)
Paramètres
- user
- User
Utilisateur pour lequel obtenir des mappages de contrôleurs.
- previous
-
Boolean
bool
True
si le mappage doit être lu à partir du magasin précédent inactif ; false
si le mappage actif doit être lu.
Retours
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 : Permutations déclenche 0x2 : Permuter les manettes 0x4 : inverse la manette gauche 0x8 : inverse la manette 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 lira le mappage de contrôleur actuel. Il peut également être utilisé pour lire un mappage qui a été enregistré ultérieurement (par exemple, pour lire un mappage enregistré afin de restaurer un état précédent).
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.