Проблема со Steamworks: ввод Steam и управление мышью.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблема со Steamworks: ввод Steam и управление мышью.

Сообщение Anonymous »

Я пытаюсь написать игру с использованием Steamworks на основе предоставленного примера SpaceWars. Но поддержки действий мыши нет, и мне не удалось ее реализовать. Переписал steam_controller.vdf, добавил обработчики действий, но ничего не работает. Такие функции, как SteamInput()->GetDigitalActionData(), всегда возвращают false, а SteamInput()->GetConnectedControllers возвращают 0, поэтому мышь вообще не распознается. Как правильно обрабатывать действия мыши?
мой файл .vdf

Код: Выделить всё

"controller_mappings"
{
"version"       "8"
"title"         "#title"
"description"       "#description"
"controller_type"   "controller_steamcontroller_gordon"
"Timestamp"     "1529529957"
"actions"
{
"Mouse"
{
"title"     "#Set_Mouse"
"legacy_set"        "0"
"StickPadGyro"
{
"Cursor"
{
"title"     "#Action_Cursor"
"input_mode"        "absolute_mouse"
"os_mouse"      "1"
}
}
"Button"
{
"scroll_up"     "#Action_ScrollUp"
"scroll_down"       "#Action_ScrollDown"
"mouse_lmb"     "#Action_LMB"
"mouse_rmb"     "#Action_RMB"
"mouse_mmb"     "#Action_MMB"
}
}
}
"action_layers"
{
}
"localization"
{
"english"
{
"Action_ScrollUp"   "ScrollUp"
"Action_ScrollDown" "ScrollDown"
"Action_LMB"        "MouseLMB"
"Action_RMB"        "MouseRMB"
"Action_MMB"        "MouseMMB"
}
}
}
в GameEngine у ​​меня есть

Код: Выделить всё

enum ECONTROLLERDIGITALACTION
{
eControllerDigitalAction_LMB_Pressed,
eControllerDigitalAction_RMB_Pressed,
eControllerDigitalAction_MMB_Pressed,
}
и зарегистрируйте их как

Код: Выделить всё

m_ControllerDigitalActionHandles[eControllerDigitalAction_LMB_Pressed] = SteamInput()->GetDigitalActionHandle("mouse_lmb");
m_ControllerDigitalActionHandles[eControllerDigitalAction_RMB_Pressed] = SteamInput()->GetDigitalActionHandle("mouse_rmb");
m_ControllerDigitalActionHandles[eControllerDigitalAction_MMB_Pressed] = SteamInput()->GetDigitalActionHandle("mouse_mmb");
но
m_pGameEngine->BIsControllerActionActive(ECONTROLLERDIGITALACTION::eControllerDigitalAction_LMB_Pressed);
всегда возвращает false. Что мне делать?

Подробнее здесь: https://stackoverflow.com/questions/788 ... e-controll
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»