LegacyGipGameControllerProvider.SetStandardControllerButtonRemapping Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Изменяет сопоставление кнопок и осей стандартного геймпада для пользователя.
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))
Параметры
- user
- User
Пользователь для повторного сопоставления контроллера.
- previous
-
Boolean
bool
True
Значение , если сопоставление должно храниться в неактивном хранилище Previous; false
Значение , если сопоставление должно быть применено.
- remapping
-
IMapView<RemappingButtonCategory,Platform::Object>
IMapView<RemappingButtonCategory,IInspectable>
Словарь, соответствующий каждому объекту RemappingButtonCategory с данными, которые указывают на повторное сопоставление. Тип данных относится к категории следующим образом:
RemappingButtonCategory | Описание данных |
---|---|
ButtonSettings | Uint64 состоит из 16 грызет. Каждое перо представляет назначение кнопки. Стандартное назначение — 0xfedcba9876543210 |
AnalogSettings | Объект uint32 со следующими эффектами: 0x1 : переключение триггеров / 0x2 : переключение стиков / 0x4 : инвертирует левый стик / 0x8 : инвертирует правый стик. Стандартное назначение равно 0. |
VibrationSettings | Объект uint32 со следующими эффектами: 0x01 : отключает вибрацию. Стандартное назначение равно 0. |
Примеры
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);
}
Комментарии
Порядок кнопок для ButtonSettings от наиболее значимых к наименее значимым: правый стик, левый палец, правое плечо, левое плечо, правое плечо, DPad right, DPad left, DPad Down, DPad Up, Y, X, B, A, View, Menu, Guide и Bind.
Как правило, предыдущий параметр должен иметь значение false
, который будет применять повторное сопоставление. Его также можно использовать для сохранения сопоставления на будущее (например, для сохранения сопоставления по умолчанию перед применением настраиваемого сопоставления, чтобы позднее можно было восстановить сопоставление по умолчанию).
Внимание!
Сопоставление контроллера является системным и постоянным для данного пользователя. Это следует делать только по указанию пользователя.