---
id: trackpad
status: active
supersededBy: []
lang: ru
title: Взаимодействие с трекпадом
description: >-
  Взаимодействие с трекпадом: действия, варианты, применение и ограничения.
  Полный список из обсуждения, с поиском и источниками.
intro: >-
  Авторская рабочая классификация для проектирования игр и взаимодействий.
  Варианты могут пересекаться и сочетаться; список не является общепринятым
  стандартом или доказанно исчерпывающим перечнем. Примеры применения условные,
  если рядом не указано конкретное подтверждаемое наблюдение. Источники
  поддерживают отдельные приёмы и технические ограничения.
updatedAt: '2026-10-20'
sources:
  - title: Жесты macOS
    url: 'https://support.apple.com/en-us/102482'
    description: >-
      Первичный источник для отдельных приёмов; не подтверждает всю авторскую
      классификацию.
  - title: Жесты Windows
    url: >-
      https://support.microsoft.com/en-us/windows/hardware/input-devices/touch-gestures-for-windows
    description: >-
      Первичный источник для отдельных приёмов; не подтверждает всю авторскую
      классификацию.
  - title: Клики и перетаскивание Surface
    url: >-
      https://support.microsoft.com/en-us/surface/accessories/cover-keyboard/surface-touchpad-use-and-settings
    description: >-
      Первичный источник для отдельных приёмов; не подтверждает всю авторскую
      классификацию.
  - title: 'AppKit: контакты и системные жесты'
    url: >-
      https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html
    description: >-
      Первичный источник для отдельных приёмов; не подтверждает всю авторскую
      классификацию.
  - title: Force Touch и тактильная отдача
    url: 'https://support.apple.com/en-us/102309'
    description: >-
      Первичный источник для отдельных приёмов; не подтверждает всю авторскую
      классификацию.
  - title: 'AppKit: поведение давления'
    url: >-
      https://developer.apple.com/documentation/appkit/nsevent/pressurebehavior-swift.enum
    description: >-
      Первичный источник для отдельных приёмов; не подтверждает всю авторскую
      классификацию.
  - title: 'libinput: swipe, pinch, hold'
    url: 'https://wayland.freedesktop.org/libinput/doc/latest/gestures.html'
    description: >-
      Первичный источник для отдельных приёмов; не подтверждает всю авторскую
      классификацию.
  - title: 'W3C: Pointer Events'
    url: 'https://www.w3.org/TR/pointerevents/'
    description: >-
      Первичный источник для отдельных приёмов; не подтверждает всю авторскую
      классификацию.
  - title: 'Steam Input: режимы поверхности'
    url: >-
      https://partner.steamgames.com/doc/features/steam_controller/input_source_modes?language=english
    description: >-
      Первичный источник для отдельных приёмов; не подтверждает всю авторскую
      классификацию.
  - title: 'AppKit: тактильная обратная связь'
    url: 'https://developer.apple.com/documentation/appkit/nshapticfeedbackmanager'
    description: >-
      Первичный источник для отдельных приёмов; не подтверждает всю авторскую
      классификацию.
counts:
  families: 11
  branches: 11
  variants: 106
url: 'https://gamemechanics.pro/ru/mechanics/trackpad/'
markdownUrl: 'https://gamemechanics.pro/content/mechanics/ru/trackpad.md'
license: CC-BY-4.0
codeLicense: MIT
attribution: gamemechanics.pro contributors
provenance: >-
  Original editorial design catalog consolidated from project discussions on
  2026-10-20. Complete discussion item lists and contextual limitations are
  preserved; linked primary sources support specific techniques, not the entire
  classification. English translation was prepared with machine assistance and
  editorial review.
---
# Взаимодействие с трекпадом

Авторская рабочая классификация для проектирования игр и взаимодействий. Варианты могут пересекаться и сочетаться; список не является общепринятым стандартом или доказанно исчерпывающим перечнем. Примеры применения условные, если рядом не указано конкретное подтверждаемое наблюдение. Источники поддерживают отдельные приёмы и технические ограничения.

## Каталог механик

<a id="section-1"></a>

### 1. Указание и управление

<a id="family-01"></a>
id: family-01
canonicalId: trackpad--family-01
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-01

Положение и движение пальца задают выбор цели или непрерывное управление указателем; приложение может видеть только обработанный курсор.

#### Варианты и применение

<a id="family-01-variants"></a>
- Относительное перемещение. Жест: Двигать палец, смещая указатель относительно текущей позиции. В интерфейсе: Навигация, точное наведение на элементы. В игре: Прицел, курсор приключения, выбор юнита. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Приложение обычно получает уже обработанное перемещение курсора, а не миллиметры пути пальца. <a id="variant-1"></a>
- Абсолютное позиционирование. Жест: Сопоставить положение на панели положению в рабочей области. В интерфейсе: Пульт для холста, переход в определённую точку карты. В игре: Прямое размещение ракетки или маркера. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Стандартный курсор ноутбука работает иначе. Нужны координаты поверхности или специальный режим драйвера. <a id="variant-2"></a>
- Управление скоростью от центра. Жест: Отклонение от фиксированного центра задаёт направление и скорость. В интерфейсе: Непрерывный панорамный обзор или прокрутка. В игре: Виртуальный стик движения, газ и руль. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Это программное отображение координат; нужен центр, нейтральная зона и понятный способ остановки. <a id="variant-3"></a>
- Плавающий виртуальный стик. Жест: Первое касание задаёт центр, дальнейшее смещение задаёт отклонение. В интерфейсе: Относительный пульт камеры без поиска центра поверхности. В игре: Управление персонажем с любой стартовой точки. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Положение пальца и начало контакта должны быть доступны приложению. <a id="variant-4"></a>
- Перехват с перестановкой пальца. Жест: Поднять палец, переставить его и продолжить относительное движение. В интерфейсе: Пересечь большой экран на маленькой панели. В игре: Продолжать разворот камеры несколькими проходами. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: ОС делает это для обычного курсора; приложение не обязательно видит сам отрыв. <a id="variant-5"></a>
- Касание как сцепление. Жест: Передавать движение только пока есть контакт; отрыв отключает канал. В интерфейсе: Временная регулировка без изменения значения при перестановке. В игре: Камера или инструмент активны только при касании. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Остановка указателя не доказывает, что палец поднят. Нужна фаза контакта. <a id="variant-6"></a>
- Грубая и точная регулировка. Жест: Менять коэффициент движения по модификатору или явному режиму. В интерфейсе: Точная настройка ползунка, монтаж, CAD. В игре: Прицеливание с пониженной чувствительностью. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: По скорости курсора нельзя надёжно восстановить физическую скорость пальца. Режим должен быть предсказуем. <a id="variant-7"></a>
- Ограничение одной осью. Жест: После начала движения зафиксировать горизонталь или вертикаль. В интерфейсе: Перенос строго по оси, выравнивание, регулировка числа. В игре: Полоса движения, рычаг, рельсовое прицеливание. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Это логика приложения; полезен явный индикатор выбранной оси. <a id="variant-8"></a>
- Привязка к целям. Жест: Подводить указатель к сетке, узлам или соседним объектам. В интерфейсе: Стыковка блоков, схемы, редактирование. В игре: Сборка пазла, выбор маленьких интерактивных объектов. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Привязка не является жестом сенсора. Слишком сильное притяжение мешает свободному движению. <a id="variant-9"></a>
- Выбор задержкой курсора. Жест: Оставить курсор на цели на заданное время. В интерфейсе: Подсказка, предпросмотр, активация без клика. В игре: Сканирование объекта, фиксация цели взглядоподобным указателем. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Это экранный hover. Датчик зависания пальца над панелью не требуется и не подразумевается. <a id="variant-10"></a>

- [AppKit: контакты и системные жесты](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html)
- [W3C: Pointer Events](https://www.w3.org/TR/pointerevents/)
- [Steam Input: режимы поверхности](https://partner.steamgames.com/doc/features/steam_controller/input_source_modes?language=english)

### 2. Касания и клики

<a id="family-02"></a>
id: family-02
canonicalId: trackpad--family-02
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-02

Короткие контакты и нажатия вызывают дискретные команды с учётом количества, расположения и контекста касаний.

#### Варианты и применение

<a id="family-02-variants"></a>
- Одиночный тап. Жест: Коротко коснуться панели и убрать палец. В интерфейсе: Выбор, подтверждение, установка курсора. В игре: Взаимодействие с предметом, одиночное действие. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Tap-to-click должен быть включён. Приложение часто видит обычный клик и не знает, что это тап. <a id="variant-11"></a>
- Нажатие с кликом. Жест: Продавить поверхность или нажать отдельную кнопку. В интерфейсе: Активация и начало перетаскивания. В игре: Выстрел, подтверждение команды. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Механический или тактильно имитированный клик не означает доступ к аналоговой силе. <a id="variant-12"></a>
- Вторичный клик. Жест: Тап двумя пальцами, клик в углу либо отдельной правой кнопкой. В интерфейсе: Контекстное меню, дополнительные команды. В игре: Осмотр предмета, альтернативное действие. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Конкретный физический жест выбирается настройками ОС; приложению обычно достаточно secondary click. <a id="variant-13"></a>
- Двойной тап или клик. Жест: Два быстрых нажатия в одной области. В интерфейсе: Открытие, выбор слова, увеличение по контексту. В игре: Быстрое перемещение, команда группе. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Согласовать временное окно с настройками ОС и не ломать одиночный клик. <a id="variant-14"></a>
- Тройной и многократный клик. Жест: Серия кликов с подсчётом количества. В интерфейсе: Выделение строки или абзаца по правилам редактора. В игре: Команда по числу нажатий, простая последовательность. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Смысл тройного клика зависит от приложения. Чем больше нажатий, тем выше риск ошибки. <a id="variant-15"></a>
- Двойной тап двумя пальцами. Жест: Дважды синхронно коснуться двумя пальцами. В интерфейсе: Умный масштаб: приблизить содержимое и вернуть обзор. В игре: Переключение между обзором поля и локальной сценой. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Smart Zoom есть в macOS; универсального межплатформенного события для этого действия нет. <a id="variant-16"></a>
- Ритмические нажатия. Жест: Учитывать темп и интервалы серии тапов или кликов. В интерфейсе: Tap tempo, ввод ритма, обучение. В игре: Ритм-игра, музыкальный замок, повторение сигнала. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Проверять реальную задержку ввода; не считать пользовательский двойной клик отдельным жестом без причины. <a id="variant-17"></a>
- Тап тремя пальцами. Жест: Короткое одновременное касание тремя пальцами. В интерфейсе: Команда второго уровня, поиск или обзор. В игре: Пауза или дополнительная способность в специальном режиме. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Часто назначен системной функции. Нужны доступный API и проверка конфликтов. <a id="variant-18"></a>
- Тап четырьмя и более пальцами. Жест: Одновременное касание несколькими пальцами. В интерфейсе: Глобальная команда или смена рабочего контекста. В игре: Редкая команда, доступная после обучения. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Число отслеживаемых контактов и системные назначения различаются; не делать обязательным управлением. <a id="variant-19"></a>
- Тап в физической зоне. Жест: Коснуться определённого участка самой панели. В интерфейсе: Невидимая панель быстрых команд с экранными подсказками. В игре: Удар по сектору, выбор способности или ноты. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Позиция экранного курсора не сообщает, где палец коснулся физической панели. <a id="variant-20"></a>

- [Жесты macOS](https://support.apple.com/en-us/102482)
- [Жесты Windows](https://support.microsoft.com/en-us/windows/hardware/input-devices/touch-gestures-for-windows)
- [Клики и перетаскивание Surface](https://support.microsoft.com/en-us/surface/accessories/cover-keyboard/surface-touchpad-use-and-settings)
- [AppKit: контакты и системные жесты](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html)
- [libinput: swipe, pinch, hold](https://wayland.freedesktop.org/libinput/doc/latest/gestures.html)
- [W3C: Pointer Events](https://www.w3.org/TR/pointerevents/)

### 3. Удержание и отпускание

<a id="family-03"></a>
id: family-03
canonicalId: trackpad--family-03
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-03

Длительность контакта и момент его завершения управляют зарядом, временным режимом или подтверждением действия.

#### Варианты и применение

<a id="family-03-variants"></a>
- Удержание кнопки. Жест: Не отпускать клик, пока выполняется действие. В интерфейсе: Временный инструмент, просмотр, непрерывное действие. В игре: Автоогонь, блок, работа инструментом. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужен выход при потере фокуса, отмене или отпускании за пределами элемента. <a id="variant-21"></a>
- Удержание контакта без клика. Жест: Держать палец на поверхности, не продавливая её. В интерфейсе: Временный режим или предпросмотр по касанию. В игре: Касание включает щит или удерживает объект. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Неподвижный курсор не равен неподвижному контакту; обычных mouse-событий недостаточно. <a id="variant-22"></a>
- Долгое нажатие. Жест: Запускать команду после временного порога удерживаемого клика. В интерфейсе: Контекстная команда, защищённое подтверждение. В игре: Взлом, ремонт, взаимодействие с механизмом. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужны индикатор прогресса и отмена при движении. Для удержания без клика нужен T. <a id="variant-23"></a>
- Автоповтор при удержании. Жест: После задержки повторять команду через интервалы. В интерфейсе: Изменение значения, листание, набор одинаковых элементов. В игре: Серийная постройка, очередь команд. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Пределы и ускорение повтора задаёт приложение. <a id="variant-24"></a>
- Накопление по времени. Жест: Длительность удержания увеличивает выбранную величину. В интерфейсе: Регулировка интенсивности при отсутствии датчика силы. В игре: Заряд выстрела, сила прыжка или броска. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Длительность и физическая сила нажатия являются разными каналами. <a id="variant-25"></a>
- Действие на отпускании. Жест: Подтверждать команду при снятии удерживаемой кнопки. В интерфейсе: Предпросмотр до окончательного выбора. В игре: Выстрел заряженным снарядом, запуск броска. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Отпускание кнопки доступно через P; отрыв пальца без клика требует T. <a id="variant-26"></a>
- Удержание без движения. Жест: Оставаться в пределах допустимого отклонения. В интерфейсе: Стабильное подтверждение, выбор с отсечением случайного движения. В игре: Удержание равновесия, стабилизация прицела. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужен допуск на естественный тремор; физический контакт без кнопки требует T. <a id="variant-27"></a>
- Удержание внутри цели. Жест: Сохранять нажатие и положение курсора в заданной зоне. В интерфейсе: Подтверждение в пределах кнопки или рабочей области. В игре: Сварка, захват, непрерывное сопровождение цели. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Следует явно показать границу и поведение при выходе. <a id="variant-28"></a>
- Выход из зоны для отмены. Жест: Увести курсор с цели перед отпусканием. В интерфейсе: Безопасная отмена выбора или подтверждения. В игре: Отмена заклинания, броска или размещения объекта. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Отмена события ОС и добровольная отмена игроком должны обрабатываться отдельно. <a id="variant-29"></a>
- Переключаемое удержание. Жест: Один клик включает режим, следующий выключает. В интерфейсе: Альтернатива долгому зажатию; фиксация инструмента. В игре: Переключаемый прицел, захват, автоматическое движение. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Состояние должно быть видно; это программная фиксация, а не свойство сенсора. <a id="variant-30"></a>

- [AppKit: контакты и системные жесты](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html)
- [libinput: swipe, pinch, hold](https://wayland.freedesktop.org/libinput/doc/latest/gestures.html)
- [W3C: Pointer Events](https://www.w3.org/TR/pointerevents/)

### 4. Перетаскивание и захват

<a id="family-04"></a>
id: family-04
canonicalId: trackpad--family-04
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-04

Захват связывает движение указателя с объектом, а отпускание завершает перенос, бросок или настройку.

#### Варианты и применение

<a id="family-04-variants"></a>
- Клик и перетаскивание. Жест: Удерживать кнопку и двигать палец. В интерфейсе: Перенос объекта, выделение, управление ползунком. В игре: Двигать предмет, прицеливаться натяжением. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Совместное движение и нажатие должно оставаться удобным на конкретном clickpad. <a id="variant-31"></a>
- Тап, второй тап с удержанием. Жест: Коснуться, затем сразу коснуться повторно и вести палец. В интерфейсе: Перетаскивание без продавливания панели. В игре: Перенос игровых предметов с меньшей нагрузкой на кисть. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Работает при соответствующей настройке драйвера или ОС. <a id="variant-32"></a>
- Перетаскивание тремя пальцами. Жест: Вести тремя пальцами вместо удержания клика. В интерфейсе: Перемещение окон, объектов и выделений. В игре: Перенос фишек и управление рычагом. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: В macOS включается отдельно; игра обычно получает результат перетаскивания, а не три контакта. <a id="variant-33"></a>
- Фиксация захвата. Жест: Продолжать перенос после краткого отрыва; завершить отдельным действием. В интерфейсе: Перенос на большую дистанцию, доступное управление. В игре: Перемещение тяжёлого предмета через всё поле. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Может обеспечиваться ОС или логикой приложения; нужна явная команда сброса. <a id="variant-34"></a>
- Drag-and-drop. Жест: Захватить объект, перенести и отпустить на приёмнике. В интерфейсе: Файлы, карточки, размещение блоков. В игре: Инвентарь, крафт, сборка конструкции. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Показывать допустимые приёмники и результат до отпускания. <a id="variant-35"></a>
- Выделение рамкой. Жест: Протянуть прямоугольную область. В интерфейсе: Групповой выбор объектов, диапазон на холсте. В игре: Выбор отряда, области строительства. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Правила включения объектов внутрь рамки должны быть последовательны. <a id="variant-36"></a>
- Лассо. Жест: Обвести произвольную область с удержанием кнопки. В интерфейсе: Выделение по контуру, маска, редактор изображений. В игре: Захват территории, окружение группы объектов. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Для свободного следа без клика нужен T; через обычное перетаскивание достаточно P. <a id="variant-37"></a>
- Перестановка в последовательности. Жест: Перетащить элемент между соседями. В интерфейсе: Сортировка списка, вкладок, временных блоков. В игре: Порядок карт, ходов, участников или способностей. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Предпросмотр места вставки уменьшает неопределённость. <a id="variant-38"></a>
- Натяжение с отпусканием. Жест: Тянуть от опорной точки, затем отпустить. В интерфейсе: Установка вектора и величины действия. В игре: Рогатка, лук, бильярдный удар, пружина. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Длина экранного вектора задаёт параметр программы, а не измеренную силу пальца. <a id="variant-39"></a>
- Бросок с инерцией. Жест: Разогнать объект перетаскиванием и отпустить. В интерфейсе: Быстрое перемещение с программной инерцией. В игре: Метание, керлинг, шайба, бросок карточки. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Скорость нужно оценивать устойчиво и ограничивать; системное ускорение курсора влияет на ощущение. <a id="variant-40"></a>

- [Жесты macOS](https://support.apple.com/en-us/102482)
- [Клики и перетаскивание Surface](https://support.microsoft.com/en-us/surface/accessories/cover-keyboard/surface-touchpad-use-and-settings)
- [W3C: Pointer Events](https://www.w3.org/TR/pointerevents/)

### 5. Прокрутка и временные оси

<a id="family-05"></a>
id: family-05
canonicalId: trackpad--family-05
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-05

Прокрутка преобразуется в перемещение по пространству, шкале значений или времени с явно заданной чувствительностью.

#### Варианты и применение

<a id="family-05-variants"></a>
- Вертикальная прокрутка. Жест: Вести два пальца вверх или вниз. В интерфейсе: Документы, списки, изменение параметра. В игре: Выбор предмета, высота прицела, приближение камеры. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: ОС может выдавать wheel-дельты. Направление зависит от настройки естественной прокрутки. <a id="variant-41"></a>
- Горизонтальная прокрутка. Жест: Вести два пальца влево или вправо. В интерфейсе: Широкий холст, дорожки, таблица. В игре: Горизонтальная камера, смена полосы или позиции. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Браузер или ОС могут использовать этот ход для навигации назад и вперёд. <a id="variant-42"></a>
- Свободное панорамирование. Жест: Использовать обе компоненты прокрутки одновременно. В интерфейсе: Карта, большая схема, двумерный холст. В игре: Обзор поля стратегии или тактической карты. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Не каждый стек передаёт одинаково точные непрерывные дельты. <a id="variant-43"></a>
- Инерционная прокрутка. Жест: После толчка продолжать движение с замедлением. В интерфейсе: Длинные ленты, каталоги, панорамы. В игре: Прокрутка колеса предметов, инерционный обзор. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Инерция может создаваться ОС или приложением; нельзя применять её дважды. <a id="variant-44"></a>
- Касание для остановки инерции. Жест: Положить пальцы на панель, чтобы остановить движение. В интерфейсе: Быстро остановить кинетическую прокрутку. В игре: Затормозить вращающееся колесо или обзор. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Нужен явный hold/touch-сигнал. libinput описывает hold; обычный wheel API этого не гарантирует. <a id="variant-45"></a>
- Краевая прокрутка. Жест: Вести один палец вдоль края поверхности. В интерфейсе: Непрерывная навигация, однопальцевый скролл. В игре: Лента инвентаря или вертикальное перемещение камеры. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужен режим драйвера или доступ к зоне панели; это не универсальный жест приложения. <a id="variant-46"></a>
- Круговая прокрутка. Жест: Вращать палец по кругу, накапливая угол. В интерфейсе: Длинный список, виртуальное колесо, изменение числа. В игре: Настройка сейфа, катушка, маховик. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Возможна через специальное отображение поверхности; альтернатива в приложении: круговой drag курсором. <a id="variant-47"></a>
- Прокрутка по шагам. Жест: Накопленные дельты переводить в дискретные переключения. В интерфейсе: Выбор строки, кадра, деления или инструмента. В игре: Перебор оружия, изменение шага ставки. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Не считать каждое wheel-событие отдельной ступенью: их частота зависит от устройства. <a id="variant-48"></a>
- Скраббинг. Жест: Прокруткой непрерывно менять позицию на временной оси. В интерфейсе: Видео, звук, анимация, история изменений. В игре: Просмотр повтора, управление перемоткой времени. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Значение позиции и скорость воспроизведения являются разными отображениями одного ввода. <a id="variant-49"></a>
- Грубый и точный скраббинг. Жест: По модификатору менять масштаб временной регулировки. В интерфейсе: Поиск сцены с переходом к покадровой точности. В игре: Точная остановка повтора или временной головоломки. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Для второй физической оси вне обычной прокрутки может потребоваться T; клавиша-модификатор проще. <a id="variant-50"></a>

- [Жесты macOS](https://support.apple.com/en-us/102482)
- [Жесты Windows](https://support.microsoft.com/en-us/windows/hardware/input-devices/touch-gestures-for-windows)
- [AppKit: контакты и системные жесты](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html)
- [libinput: swipe, pinch, hold](https://wayland.freedesktop.org/libinput/doc/latest/gestures.html)
- [W3C: Pointer Events](https://www.w3.org/TR/pointerevents/)
- [Steam Input: режимы поверхности](https://partner.steamgames.com/doc/features/steam_controller/input_source_modes?language=english)

### 6. Направления и траектории

<a id="family-06"></a>
id: family-06
canonicalId: trackpad--family-06
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-06

Направление, форма и порядок участков траектории становятся распознаваемой командой или условием игрового действия.

#### Варианты и применение

<a id="family-06-variants"></a>
- Направленный свайп. Жест: Выполнить распознаваемый ход вверх, вниз, влево или вправо. В интерфейсе: Перелистывание, закрытие карточки, переход. В игре: Уклонение, рубящий удар, быстрый приказ. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Число пальцев и доступность swipe определяет платформа. Альтернатива: распознавать drag через P. <a id="variant-51"></a>
- Диагональный росчерк. Жест: Сделать короткое перетаскивание в одном из восьми секторов. В интерфейсе: Расширенное меню команд по направлению. В игре: Восемь направлений удара или переката. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Без удержания кнопки и с привязкой к физическому движению нужен T. <a id="variant-52"></a>
- Быстрый росчерк. Жест: Учитывать скорость и направление короткого drag. В интерфейсе: Быстрое удаление, отправка, сдвиг элемента. В игре: Взмах, парирование, резкий толчок. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Порог скорости нужно отличать от порога длины и проверять с разной чувствительностью курсора. <a id="variant-53"></a>
- Жест туда и обратно. Жест: Сменить направление в рамках одной траектории. В интерфейсе: Отмена, возврат, подтверждение последовательностью. В игре: Взвод механизма, передёргивание затвора, работа пилой. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Движение распознаётся приложением; это не стандартное событие touchpad. <a id="variant-54"></a>
- Круг. Жест: Провести замкнутую окружность с удержанием кнопки. В интерфейсе: Вращение ручки или выбор циклического параметра. В игре: Завести механизм, перемешать, начертить круг заклинания. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужен допуск на неполное замыкание и форму. Контактный вариант без клика требует T. <a id="variant-55"></a>
- Дуга. Жест: Провести часть окружности. В интерфейсе: Поворот, настройка угла, веерный выбор. В игре: Замах мечом, дуговой щит, управление вентилем. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Отличать желаемую дугу от случайного искривления движения. <a id="variant-56"></a>
- Зигзаг. Жест: Провести последовательность поворотов. В интерфейсе: Команда по форме, графический код. В игре: Молния, разрез, взлом узора. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Длинные жестовые пароли плохо обнаружимы без подсказки. <a id="variant-57"></a>
- Растирание. Жест: Многократно двигаться туда-сюда в небольшой области. В интерфейсе: Стирание, очистка маски, проявление слоя. В игре: Оттереть грязь, разжечь огонь, заточить предмет. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Ограничивать необходимое число повторов; движение само по себе не измеряет трение материала. <a id="variant-58"></a>
- Рисование символа. Жест: Начертить букву, цифру или условный знак. В интерфейсе: Рукописный ввод, аннотация, команда по символу. В игре: Руны, заклинания, подпись, графический замок. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужны распознаватель и проверка ошибок. Стандартный trackpad API не распознаёт руны автоматически. <a id="variant-59"></a>
- Следование по контуру. Жест: Непрерывно вести курсор по заданной траектории. В интерфейсе: Обводка, тренажёр точности, ручная маска. В игре: Проводка через лабиринт, хирургия, соединение дорожек. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Необходимо учитывать допуск, видимость курсора и возможность переставить палец. <a id="variant-60"></a>

- [libinput: swipe, pinch, hold](https://wayland.freedesktop.org/libinput/doc/latest/gestures.html)
- [W3C: Pointer Events](https://www.w3.org/TR/pointerevents/)

### 7. Геометрия нескольких контактов

<a id="family-07"></a>
id: family-07
canonicalId: trackpad--family-07
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-07

Относительные положения нескольких контактов задают масштаб, угол и другие геометрические параметры; нужен доступ к этим данным.

#### Варианты и применение

<a id="family-07-variants"></a>
- Сведение двух пальцев. Жест: Уменьшать расстояние между контактами. В интерфейсе: Уменьшение масштаба, переход к обзору. В игре: Отдаление карты или сжатие игрового объекта. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Из готового pinch часто доступен масштаб, но не координаты обеих точек. <a id="variant-61"></a>
- Разведение двух пальцев. Жест: Увеличивать расстояние между контактами. В интерфейсе: Приближение, раскрытие деталей. В игре: Увеличение карты, растяжение пружины, раскрытие щита. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Для физического моделирования обоих захватов нужен T. <a id="variant-62"></a>
- Вращение двумя пальцами. Жест: Менять угол линии между контактами. В интерфейсе: Поворот изображения, холста или модели. В игре: Вентиль, ориентация детали, поворот артефакта. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Поддержка rotate не следует автоматически из наличия pinch. <a id="variant-63"></a>
- Одновременный перенос, масштаб и поворот. Жест: Перемещать центр, менять расстояние и угол пары. В интерфейсе: Свободное преобразование объекта или холста. В игре: Установка детали, манипуляция картой или механизмом. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Фреймворк должен разрешать совместное распознавание. Иначе нужен T и собственный обработчик. <a id="variant-64"></a>
- Один палец как якорь. Жест: Оставить контакт неподвижным, вторым менять радиус или угол. В интерфейсе: Преобразование относительно явной опорной точки. В игре: Рычаг, циркуль, намотка троса, прицел вокруг опоры. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Готового масштаба или поворота может быть мало: нужны обе координаты. <a id="variant-65"></a>
- Два независимых захвата. Жест: Каждым контактом управлять отдельным концом объекта. В интерфейсе: Редактирование отрезка, диапазона или соединения. В игре: Натянуть верёвку, удержать две рукояти, поставить мост. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Приложение должно сохранять роли контактов и обрабатывать исчезновение одного из них. <a id="variant-66"></a>
- Растяжение по выбранной оси. Жест: Использовать отдельно изменение горизонтального или вертикального расстояния. В интерфейсе: Непропорциональный размер, ширина и высота. В игре: Сжать преграду, растянуть проход или платформу. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Обычный scalar pinch не сообщает полную геометрию пары. <a id="variant-67"></a>
- Деформация по трём опорам. Жест: Тремя отслеживаемыми точками менять форму или аффинное преобразование. В интерфейсе: Наклон, сдвиг, деформация сетки. В игре: Гнуть мягкое тело, управлять тремя креплениями. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужны три независимые координаты. Двух точек недостаточно для однозначного общего shear-преобразования. <a id="variant-68"></a>
- Разведение группы пальцев. Жест: Увеличивать разброс трёх и более контактов. В интерфейсе: Раскрытие группы, разворачивание структуры. В игре: Рассеять отряд, раскрыть устройство или поле. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Может совпадать с глобальным жестом ОС; требуются проверка перехвата и число контактов. <a id="variant-69"></a>
- Сведение группы пальцев. Жест: Собирать несколько контактов к общему центру. В интерфейсе: Сворачивание группы или переход к общей структуре. В игре: Собрать объекты, сжать область, сосредоточить энергию. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Не считать, что каждый палец имеет независимое измерение силы или известную анатомическую роль. <a id="variant-70"></a>

- [Жесты macOS](https://support.apple.com/en-us/102482)
- [Жесты Windows](https://support.microsoft.com/en-us/windows/hardware/input-devices/touch-gestures-for-windows)
- [AppKit: контакты и системные жесты](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html)

### 8. Аккорды, роли и последовательности

<a id="family-08"></a>
id: family-08
canonicalId: trackpad--family-08
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-08

Сочетания контактов и их порядок распределяют роли между пальцами и позволяют составлять команды из нескольких фаз.

#### Варианты и применение

<a id="family-08-variants"></a>
- Число пальцев как режим. Жест: Одно, два или три касания включают разные функции. В интерфейсе: Один контакт рисует, два перемещают, три меняют инструмент. В игре: Смена типа действия без отдельной кнопки. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: ОС может уже использовать такую грамматику и не отдавать все касания приложению. <a id="variant-71"></a>
- Пространственный аккорд. Жест: Одновременно касаться определённого набора зон. В интерфейсе: Комбинации команд, аккордовая клавиатура. В игре: Музыкальные аккорды, комбинация рун, несколько клапанов. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужны координаты нескольких контактов; число пальцев само по себе не задаёт аккорд. <a id="variant-72"></a>
- Удержание плюс тап. Жест: Один контакт держит состояние, другой коротко касается. В интерфейсе: Временный модификатор плюс команда. В игре: Щит и удар, прицел и выстрел. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Фильтрация большого пальца может удалить опорный контакт. <a id="variant-73"></a>
- Удержание плюс движение. Жест: Первый контакт фиксирует режим, второй непрерывно движется. В интерфейсе: Редактирование с модификатором, точная регулировка. В игре: Блок и направление защиты, захват и вращение. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Для обычного курсора вместо опорного пальца можно использовать клавишу. <a id="variant-74"></a>
- Два независимых канала. Жест: Развести два контакта по двум управляемым величинам. В интерфейсе: Два ползунка, XY-контроль с раздельными ролями. В игре: Две ракетки, две руки, газ и тормоз. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Один системный указатель не превращается в два. Проверять площадь панели и удобство рук. <a id="variant-75"></a>
- Чередование пальцев. Жест: Попеременно касаться двумя отслеживаемыми контактами. В интерфейсе: Барабанный ввод, метроном, обучение моторике. В игре: Бег, гребля, игра на ударных. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Два обычных клика позволяют вводить ритм, но не доказывают чередование физических пальцев. <a id="variant-76"></a>
- Шагающие контакты. Жест: Последовательно переставлять пальцы с сохранением хотя бы одной опоры. В интерфейсе: Навигация по поверхности с непрерывным контактом. В игре: Карабканье, ходьба существа, перенос опор робота. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Роль должна назначаться по контакту и контексту, а не по догадке о том, какой это палец. <a id="variant-77"></a>
- Порядок постановки. Жест: Считать разные последовательности появления контактов разными командами. В интерфейсе: Жестовый код, переключение инструмента. В игре: Замок, комбинация действий, последовательное включение механизмов. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Порядок поступления событий не всегда точно отражает почти одновременные касания. <a id="variant-78"></a>
- Порядок снятия. Жест: Различать, какой из назначенных контактов отпущен первым. В интерфейсе: Разные способы подтверждения и завершения. В игре: Отпустить один захват, перебросить нагрузку, закончить комбинацию. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужны устойчивые идентификаторы в рамках последовательности и отдельная обработка отмены. <a id="variant-79"></a>
- Добавление или снятие пальца во время движения. Жест: Переключать режим, сохраняя текущую траекторию. В интерфейсе: Точный режим, смена инструмента без остановки. В игре: Переход с ходьбы на бег, смена типа удара в замахе. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Распознаватель ОС может завершить один жест и начать другой; переход нельзя считать непрерывным по умолчанию. <a id="variant-80"></a>

- [AppKit: контакты и системные жесты](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html)
- [libinput: swipe, pinch, hold](https://wayland.freedesktop.org/libinput/doc/latest/gestures.html)

### 9. Зоны и виртуальные органы управления

<a id="family-09"></a>
id: family-09
canonicalId: trackpad--family-09
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-09

Участки поверхности получают виртуальные роли: стик, колесо, кнопка или независимая ось управления.

#### Варианты и применение

<a id="family-09-variants"></a>
- Сетка виртуальных кнопок. Жест: Разделить физическую панель на ячейки. В интерфейсе: Горячие команды, цифровая клавиатура, пульт. В игре: Быстрые слоты, барабанные пэды, способности. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужны экранная схема и достаточно крупные зоны; на панели нет самих подписей. <a id="variant-81"></a>
- Виртуальная крестовина. Жест: Центр и направления работают как цифровые кнопки. В интерфейсе: Навигация по меню, пошаговое смещение. В игре: Ходьба по клеткам, управление платформером. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Задаются нейтральная зона и правило диагоналей; специальный драйвер может отдать уже готовые кнопки. <a id="variant-82"></a>
- Двумерный аналоговый пульт. Жест: Координаты X и Y независимо задают два параметра. В интерфейсе: Панорама и громкость, цвет и насыщенность, XY-эффект. В игре: Руль и газ, два параметра способности, управление балансом. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Это два программных параметра одной позиции, а не обязательно два контакта. <a id="variant-83"></a>
- Радиальное меню. Жест: Открыть меню, выбрать сектор движением и подтвердить. В интерфейсе: Инструменты, команды, быстрый выбор. В игре: Колесо оружия, заклинаний или приказов. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Работает через курсор и удержание. Вариант с физическим центром панели требует T или специального режима. <a id="variant-84"></a>
- Внешнее кольцо как дополнительная команда. Жест: Выходить за заданный радиус относительно центра поверхности. В интерфейсе: Ускоренный режим или расширенный набор функций. В игре: Бег на внешнем кольце, ходьба ближе к центру. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Для обычного курсора возможен аналог относительно экранного центра; физическая зона требует координат панели. <a id="variant-85"></a>
- Краевые полосы-ползунки. Жест: Выделить края под отдельные непрерывные параметры. В интерфейсе: Громкость, масштаб, прозрачность, временная ось. В игре: Здоровье инструмента, мощность, высота, тяга. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Контакты у края могут отфильтровываться драйвером. Не путать край панели с краем экранного окна. <a id="variant-86"></a>
- Углы и квадранты. Жест: Назначить разным углам и половинам различные команды. В интерфейсе: Четыре быстрых инструмента или две группы управления. В игре: Левый и правый удары, четыре способности. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Это конкретная разметка поверхности; системные click-зоны не гарантируют произвольную разметку. <a id="variant-87"></a>
- Отображение в экранную область. Жест: Связать поверхность с выбранной частью экрана. В интерфейсе: Управление миникартой, конкретным монитором или панелью. В игре: Быстрый приказ на миникарте, точная работа с инвентарём. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужно учитывать пропорции и размер области. Steam Input описывает Mouse Region для поддерживаемых источников. <a id="variant-88"></a>
- Модификатор другого устройства. Жест: С клавишей или кнопкой менять значение движения панели. В интерфейсе: Поворот вместо переноса, копирование при drag, точный ввод. В игре: Клавиатура отвечает за движение, панель за камеру; кнопка меняет инструмент. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Некоторые драйверы подавляют панель во время печати. Совместную работу надо проверить на устройстве. <a id="variant-89"></a>
- Пересечение границ зон. Жест: Запускать действие при входе в зону или пересечении линии. В интерфейсе: Последовательный выбор, безкликовый ввод по маршруту. В игре: Струны, лазерные дорожки, ноты, соединение контактов. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Для зон физической панели нужен T. Для зон экранного холста достаточно траектории курсора P. <a id="variant-90"></a>

- [AppKit: контакты и системные жесты](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html)
- [W3C: Pointer Events](https://www.w3.org/TR/pointerevents/)
- [Steam Input: режимы поверхности](https://partner.steamgames.com/doc/features/steam_controller/input_source_modes?language=english)

### 10. Давление и сила

<a id="family-10"></a>
id: family-10
canonicalId: trackpad--family-10
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-10

Измеряемая сила нажатия задаёт значение или порог действия; обычный клик и размер контакта не заменяют датчик силы.

#### Варианты и применение

<a id="family-10-variants"></a>
- Сильный клик. Жест: После обычного нажатия перейти к более сильному. В интерфейсе: Дополнительная контекстная команда или предпросмотр. В игре: Второе действие инструмента, усиленное взаимодействие. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Нужны поддерживаемые ступени давления; это не обычное долгое нажатие. <a id="variant-91"></a>
- Аналоговая сила. Жест: Непрерывно связывать величину нажатия с параметром. В интерфейсе: Интенсивность эффекта, уровень или усилие. В игре: Газ, тормоз, сжатие предмета, мощность двигателя. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Диапазон и шум зависят от устройства; давление не обязательно измеряется отдельно для каждого пальца. <a id="variant-92"></a>
- Заряд от силы с отпусканием. Жест: Нарастить силу, затем снять нажатие для запуска. В интерфейсе: Выбор интенсивности перед подтверждением. В игре: Сильный бросок, удар, выстрел. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Заранее определить, используется сила в момент отпускания, пиковая сила или накопление во времени. <a id="variant-93"></a>
- Несколько порогов силы. Жест: Разделить измеряемую силу на программные диапазоны. В интерфейсе: Предпросмотр, выбор, подтверждение одной кнопкой. В игре: Ходьба, бег, рывок или разные состояния инструмента. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Физически различимых щелчков может быть меньше, чем программных порогов. Нужен гистерезис. <a id="variant-94"></a>
- Рисование с силой. Жест: Менять толщину или непрозрачность штриха по нажатию. В интерфейсе: Кисть, ретушь, рукописные пометки. В игре: Рисование рун с переменной толщиной, виртуальная гравировка. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Нужны одновременно траектория и давление; палец на trackpad не равен перу графического планшета. <a id="variant-95"></a>
- Сила как скорость. Жест: Увеличивать темп изменения параметра при усилении нажатия. В интерфейсе: Быстрая перемотка, прокрутка или регулировка. В игре: Скорость механизма, намотки или движения. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Управление скоростью отличается от задания абсолютного значения; нужен понятный ноль. <a id="variant-96"></a>
- Сила как переключатель точности. Жест: Нажимать сильнее для более медленного и точного управления. В интерфейсе: Точный режим редактирования без отдельной клавиши. В игре: Стабилизация прицела или аккуратное манипулирование. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Нажатие само может сдвигать палец; удобство нужно проверять на реальной панели. <a id="variant-97"></a>
- Дополнительное нажатие во время drag. Жест: В процессе переноса менять силу и включать вторую функцию. В интерфейсе: Предпросмотр приёмника, раскрытие вложенной папки, дополнительный режим. В игре: Сжать захваченный предмет, изменить хват или силу инструмента. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Нужно согласовать pressure-события с захватом указателя и системным поведением. <a id="variant-98"></a>
- Импульсы силы. Жест: Усиливать и ослаблять нажатие без полного отрыва. В интерфейсе: Экспрессивный музыкальный ввод, управление импульсами. В игре: Насос, пульсация способности, передача ритма силой. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Обычный клик не сообщает такую кривую; требуется сглаживание и пороги с допуском. <a id="variant-99"></a>
- Удержание силы в диапазоне. Жест: Сохранять давление между нижней и верхней границами. В интерфейсе: Тренажёр дозирования усилия. В игре: Тонкая работа с хрупким предметом, натяжение струны, обезвреживание. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Это авторская игровая модель; пороги нужно калибровать, а альтернативу давать по времени или ползунку. <a id="variant-100"></a>

- [Force Touch и тактильная отдача](https://support.apple.com/en-us/102309)
- [AppKit: поведение давления](https://developer.apple.com/documentation/appkit/nsevent/pressurebehavior-swift.enum)

### 11. Составные схемы управления

<a id="family-11"></a>
id: family-11
canonicalId: trackpad--family-11
url: https://gamemechanics.pro/ru/mechanics/trackpad/#family-11

Несколько сигналов или осей объединяются в одно правило управления с отдельными ролями точности, направления и подтверждения.

#### Варианты и применение

<a id="family-11-variants"></a>
- Виртуальный трекбол. Жест: Толчком задать скорость, после отрыва продолжить движение с инерцией. В интерфейсе: Дальний перенос указателя, вращение модели. В игре: Инерционная камера или вращающийся шар. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Для точного запуска по отрыву нужен контактный сигнал или специальный режим. Программная инерция не является физическим вращением панели. <a id="variant-101"></a>
- Продолжение движения у края. Жест: Довести контакт до края и продолжать менять параметр без дальнейшего перемещения. В интерфейсе: Прокрутка или вращение без постоянной перестановки пальца. В игре: Непрерывный разворот камеры, вращение башни. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Отдельно задать скорость у края и условие остановки. Драйвер может фильтровать краевые контакты. <a id="variant-102"></a>
- Свайп от физического края. Жест: Учитывать не только направление, но и начало контакта у края панели. В интерфейсе: Выдвижная панель, дополнительный набор команд. В игре: Открытие инвентаря, карты или скрытой панели. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Край панели и край экранного окна различаются. ОС может перехватывать этот жест для глобальной функции. <a id="variant-103"></a>
- Цепочка жестов. Жест: Выполнить несколько распознаваемых движений в заданном порядке. В интерфейсе: Жестовый макрос или многошаговая команда. В игре: Комбо, пароль, последовательность рун. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Через P можно распознавать последовательность drag и кликов. Цепочка без кнопки требует T; нужен понятный сброс ошибки. <a id="variant-104"></a>
- Иерархическое меню росчерком. Жест: Последовательными направлениями выбрать раздел и вложенную команду. В интерфейсе: Быстрые команды в marking menu после обучения. В игре: Выбор категории и конкретного заклинания одним маршрутом. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужна видимая версия меню для обучения и запасной способ выбора. <a id="variant-105"></a>
- Точность по поперечному смещению. Жест: Одной компонентой drag менять значение, другой регулировать чувствительность. В интерфейсе: Точный скраббинг: по горизонтали время, по вертикали масштаб шага. В игре: Выбор силы и точности, настройка временного механизма. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Это программное отображение траектории курсора. Обычная двухпальцевая прокрутка не гарантирует ту же геометрию. <a id="variant-106"></a>

- [Жесты macOS](https://support.apple.com/en-us/102482)
- [W3C: Pointer Events](https://www.w3.org/TR/pointerevents/)
- [Steam Input: режимы поверхности](https://partner.steamgames.com/doc/features/steam_controller/input_source_modes?language=english)

## Тактильная обратная связь



### Тактильные деления

Короткий импульс при пересечении шага или сектора.; Ползунок, выбор кадра, радиальное меню.; Сейф, колесо оружия, переключатель.

### Ощущение границы

Импульс при достижении края допустимого диапазона.; Конец списка или предел регулировки.; Конец хода рычага, край карты.

### Подтверждение привязки

Импульс при попадании на направляющую или точное значение.; Выравнивание, стыковка объектов.; Пазл, соединение деталей.

### Подтверждение состояния

Отдача при выборе, захвате, достижении порога или завершении.; Отличимые стадии операции.; Захват, заряд готов, действие подтверждено.

### Тактильный рисунок движения

Импульсы по мере перемещения имитируют поверхность.; Виртуальная шкала или фактура.; Шероховатость, работа инструмента, движение по зубцам.

### Сигнал события или ошибки

Различимый короткий сигнал о результате.; Недопустимая цель, ошибка, завершение.; Столкновение, тревога, неудачный захват.

## Доступ к вводу



### P

Описание: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны.

### G

Описание: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается.

### T

Описание: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует.

### F

Описание: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик.

## Что влияет на реализуемость



Тачпад является косвенным устройством: положение экранного курсора обычно не совпадает с положением пальца на поверхности. Выход курсора из элемента не означает отрыв пальца.

Системные жесты, особенно с тремя и четырьмя пальцами и от края, могут переключать приложения или рабочие столы. Приложение не всегда может их получить. Жесты macOS; Жесты Windows.

Веб-приложение обычно работает с указателем и wheel-событиями. Pointer Events сами по себе не дают переносимого доступа ко всем пальцам ноутбучного тачпада. Наличие свойства pressure не доказывает измерение силы. W3C: Pointer Events.

Число видимых контактов зависит от оборудования, драйвера и отсеивания ладони и большого пальца. Идентификатор контакта не сообщает, какой это анатомический палец. AppKit: контакты и системные жесты; libinput: swipe, pinch, hold.

Датчик силы, сильный клик и тактильная отдача являются разными возможностями. Площадь контакта не равна силе, а сила не обязательно доступна отдельно для каждого пальца. Force Touch и тактильная отдача; AppKit: поведение давления.

## Как выбирать механику



Для переносимого варианта начать с наведения, клика, перетаскивания и прокрутки. Давление и многопальцевые команды добавлять после проверки устройства.

Разделять физический сигнал и правило игры: сила, время удержания, длина движения и скорость являются разными параметрами.

Показывать начало захвата, активный режим, порог, успешное завершение и отмену. Давать предварительный результат там, где это помогает.

Обрабатывать отмену жеста, потерю фокуса и захвата. Незавершённый жест не должен оставлять выстрел, движение или перенос включённым.

Проверять малую площадь панели, необходимость переставлять палец, работу одновременно с клавиатурой и удобство без продавливания.

Предусмотреть альтернативу давлению, сложным аккордам и длинным удержаниям. Не назначать единственный путь к важной команде на скрытый или системный жест.

## Что требует отдельного оборудования или исследования



Наклон пальца, его анатомическое распознавание, форма и площадь контакта, касание костяшкой, ладонь как команда, зависание над поверхностью и ввод стилусом не считаются базовыми каналами обычного тачпада. Отдельные устройства могут отдавать дополнительные данные, но это нужно подтвердить документацией и измерением. Отсеивание ладони может намеренно скрывать такие контакты.

## Как пользоваться каталогом



Разделяйте действие игрока, распознаваемый сигнал, игровое правило и обратную связь. Родственные варианты здесь сохраняют контекст применения и не обязательно являются независимыми физическими примитивами.

При прототипировании сначала проверьте одно правило и условия отказа. Наличие API, датчика или источника не доказывает работу всех сценариев. Для устройств проверяйте доступность функций, калибровку и альтернативный ввод на реальном целевом оборудовании.

## Источники и примеры

Источники подтверждают отдельные приёмы или методологию. Они не подтверждают все варианты семейства. Примеры проектирования и сочетания механик являются иллюстрациями.

- [Жесты macOS](https://support.apple.com/en-us/102482): Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.
- [Жесты Windows](https://support.microsoft.com/en-us/windows/hardware/input-devices/touch-gestures-for-windows): Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.
- [Клики и перетаскивание Surface](https://support.microsoft.com/en-us/surface/accessories/cover-keyboard/surface-touchpad-use-and-settings): Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.
- [AppKit: контакты и системные жесты](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html): Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.
- [Force Touch и тактильная отдача](https://support.apple.com/en-us/102309): Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.
- [AppKit: поведение давления](https://developer.apple.com/documentation/appkit/nsevent/pressurebehavior-swift.enum): Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.
- [libinput: swipe, pinch, hold](https://wayland.freedesktop.org/libinput/doc/latest/gestures.html): Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.
- [W3C: Pointer Events](https://www.w3.org/TR/pointerevents/): Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.
- [Steam Input: режимы поверхности](https://partner.steamgames.com/doc/features/steam_controller/input_source_modes?language=english): Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.
- [AppKit: тактильная обратная связь](https://developer.apple.com/documentation/appkit/nshapticfeedbackmanager): Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.
