Горячие клавиши
Как создавать сочетания клавиш (горячие клавиши) в Pixi’VN с помощью TanStack Hotkeys, с примерами быстрого сохранения/загрузки и управления мини-игрой.
Горячие клавиши позволяют игрокам напрямую выполнять действия с клавиатуры, например быстро сохранять игру, пропускать диалог или управлять мини-игрой. Вместо того чтобы самостоятельно управлять вызовами window.addEventListener("keydown", ...), рекомендуется использовать TanStack Hotkeys — библиотеку, которая превращает ввод с клавиатуры в типизированную систему команд с областями действия, последовательностями, удерживаемыми клавишами и обнаружением конфликтов.
Список горячих клавиш, часто используемых в visual novel (быстрое сохранение, быстрая загрузка, история, настройки, ...) доступен в разделе FAQ.
Использование
Зарегистрируйте горячую клавишу с помощью хука useHotkey:
import { useHotkey } from "@tanstack/react-hotkeys";
useHotkey("Mod+S", () => {
quickSave();
});Модификатор Mod автоматически преобразуется в Meta (Cmd) на macOS и в Control на Windows/Linux, поэтому один и тот же код работает на всех платформах.
Область действия и условное включение
useHotkey — это хук, поэтому он регистрирует сочетание клавиш при монтировании компонента и автоматически удаляет его при размонтировании компонента — вам не нужно самостоятельно удалять обработчик, в отличие от ручного window.addEventListener.
Используйте параметр target, чтобы ограничить действие горячей клавиши определённым элементом, и enabled, чтобы включать или выключать её в зависимости от состояния игры, например пока выполняется мини-игра:
const panelRef = useRef<HTMLDivElement>(null);
useHotkey("Escape", () => closePanel(), { target: panelRef });
useHotkey("ArrowUp", () => setDirection(0, -1), { enabled: !gameOver });Узнать больше
TanStack Hotkeys также поддерживает последовательности клавиш (например, «G, затем D»), удерживаемые клавиши, обнаружение конфликтов и панель инструментов разработчика. Полный список возможностей см. в официальной документации.