Кнопки джоя —> клавиатура, есть прога?

Видел такую вещь, как ppjoy, позволяет конвертировать нажатия клавиш клавиатуры в нажатия виртуального джойстика. У меня обратная потребность: нужно преобразовать нажатия кнопок джойстика в виртуальные нажатия клавиш клавиатуры. Зачем? Просто что ZDSimulator ( http://www.zdsim.kiev.ua/zdsimulator/ ), что Train Simulator не приучены к джойстику, а привязать охота

Ответов: 6

Vivan755 (29 Август 2009 — 22:09) писал:

Видел такую вещь, как ppjoy, позволяет конвертировать нажатия клавиш клавиатуры в нажатия виртуального джойстика. У меня обратная потребность: нужно преобразовать нажатия кнопок джойстика в виртуальные нажатия клавиш клавиатуры. Зачем? Просто что ZDSimulator ( http://www.zdsim.kiev.ua/zdsimulator/ ), что Train Simulator не приучены к джойстику, а привязать охота

А джой-то какой? Если Сайтек — там есть фирменная приблуда, которая любой кнопарь на клаве к джою привяжет. Если же не Сайтек — тогда не знаю. 🙂

Поищите Mjoy mapper

Вместо MJoy нашёл MCab 🙂
http://mercury13.tut…soft_mcabmapper
Правда, ZDSim почему-то не слушается некоторых «клавиш»…

Joy2key. Есть две версии — забугорная и наша, времён Фалкона; обе хоть и древние, но отлично справляются со своей задачей.

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

Прикрепленные изображения

  • Прикрепленное изображение: gg.jpg

Используй программу GlovePie она работает с PPJoy. Программа позволяет свободно управлять практическ всеми устройствами ввода (джойстик, мышь, клавиатура) в системе, получать с них данные и обрабатывать их используя довольно мощную скриптовую систему.
Вот несколько примеров скриптов:

/*
Скрипт триггер.
Например, в игре есть кнопка включения фар, но фары горят пока кнопка нажата.
Скрипт позволяет нажать кнопку (в примере SHIFT) и кнопка для фар (в примере Z)
нажмётся и будет нажата пока повторно не нажмётся кнопка SHIFT

проверено на версии 0.30
*/

//не повторять нажатие клавиши, если она удерживается.
Keyboard.RepeatFakeKeys = False

if pressed(SHIFT) then
  release SHIFT //чтобы не совпала комбинация SHIFT+key
  toggle(Z) //кнопка на которую в игре назначено 'Мигнуть фарами'

//удалить из чата мусор
//  if pressed(Z) then
//    press(Backspace)
//  end
end
/*
Если кто-то играет в окне мышкой, часто бывает что она выходит за пределы окна, что доставляет массу неудобства. Ниже приведённый скрипт частично решает эту проблему.

проверено на версии 0.30
*/

var.minX = window.CaretScreenX
var.minY = window.Top+32  //window.CaretScreenY - не работает правильно
var.maxX = window.Left + window.ClientWidth
var.maxY = window.Top + window.Height-5

//отключаем кнопки мыши, если она за пределами окна активного
if (InRange(mouse.CursorPosX, var.minX, var.maxX)) and (InRange(mouse.CursorPosY, var.minY, var.maxY)) then
mouse.SwallowButtons = false
end
if (not InRange(mouse.CursorPosX, var.minX, var.maxX)) or (not InRange(mouse.CursorPosY, var.minY, var.maxY)) then
mouse.SwallowButtons = true
end

//возврат курсора в область окна, если он выходит за его пределы.
if mouse.CursorPosX < var.minX then mouse.CursorPosX = var.minX
if mouse.CursorPosX > var.maxX then mouse.CursorPosX = var.maxX
if mouse.CursorPosY < var.minY then mouse.CursorPosY = var.minY
if mouse.CursorPosY > var.maxY then mouse.CursorPosY = var.maxY
/*
Скрипт для rFactor (и не только) что бы управлять мышкой.

Требования: GlovePIE 0.30 + PPJoy (виртуальный джойстик)
ver 1.1 by compot & repeat
Включение/Отключение скрипта на правую кнопку Win

проверено на версии 0.30
*/

//отключаем правый Win
Keyboard.AnyKey=swallow(Keyboard.RightWindows)

//на правый Win назначено включение и отключение скрипта
if released(Keyboard.RightWindows) then begin
if var.catchstart = false then begin
var.catchstart = true
say "start" // i.2
end else begin
var.catchstart = false
say "stop" // i.3
end
wait 250 ms // i.4
end

//if var.catchstart and window.AppName = 'rFactor v1.255' then
if var.catchstart then

//для оконного режима, чтобы не вылазил за окно.
var.inwindow = InRange(mouse.CursorPosX, window.Left, window.Left+window.Width-1) and InRange(mouse.CursorPosY, window.top+32, window.Top+window.Height-1)
Mouse.SwallowButtons = not var.inwindow
Mouse.CursorPosX = EnsureMapRange(Mouse.CursorPosX, window.Left, window.Left+window.Width-1, window.Left, window.Left+window.Width-1)
Mouse.CursorPosY = EnsureMapRange(Mouse.CursorPosY, window.top+32, window.Top+window.Height-1, window.top+32, window.Top+window.Height-1)

ppjoy.analog0 = MapRange(mouse.CursorPosX, window.Left, window.Left+window.Width-1, -1,1)
ppjoy.digital1 = mouse.LeftButton
ppjoy.digital2 = mouse.RightButton
end