// Тумблер F10
//Вкл/Выкл джоя
if (F10 = false) then var.f = 0
if (F10 = true and var.off = 0 and var.f = 0) {
var.off = 1
var.f = 1
elseif (F10 = true and var.off = 1 and var.f = 0) {
var.off = 0
var.f = 1
}
}
if var.off = 0 {
//Опрос мышек ### НАЧАЛО ###
if (Mouse1.present) {
if (var.Mouse1_in = false) {
var.Mouse1_mapX = 500 //Разрешение оси X, подбирается индивидуально
var.Mouse1_mapY = 500 //Разрешение оси Y подбирается индивидуально
var.Mouse1_Wheel = 11 //На сколько щелчков колеса мыши разбить ось джойстика
var.Mouse1_mapZ = var.Mouse1_Wheel*120
}
// Создаем коэффициент нелинейности
Var.Mouse1_Kx = MapRange(abs(var.Mouse1_X), 0, var.Mouse1_mapX, 1 ,1) //Последние 2 цифры - это, например, как от 30 до 100% деленное на 100
Var.Mouse1_Ky = MapRange(abs(var.Mouse1_Y), 0, var.Mouse1_mapY, 1 ,1)
//Сдвиг мышки с учетом коэффициента
var.Mouse1_deltax = Delta(Mouse1.DirectInputX) * Var.Mouse1_Kx
var.Mouse1_deltay = Delta(Mouse1.DirectInputY) * Var.Mouse1_Ky
var.Mouse1_deltaz = Delta(Mouse1.DirectInputZ)
// Новые координаты мыши
var.Mouse1_X = var.Mouse1_X + (var.Mouse1_deltax)
var.Mouse1_Y = var.Mouse1_Y + (var.Mouse1_deltay)
var.Mouse1_Z = var.Mouse1_Z + (var.Mouse1_deltaz)
//Нельзя выходить за границы допустимой зоны
if var.Mouse1_X < -var.Mouse1_mapX then var.Mouse1_X = -var.Mouse1_mapX
if var.Mouse1_X > var.Mouse1_mapX then var.Mouse1_X = var.Mouse1_mapX
if var.Mouse1_Y < -var.Mouse1_mapY then var.Mouse1_Y = -var.Mouse1_mapY
if var.Mouse1_Y > var.Mouse1_mapY then var.Mouse1_Y = var.Mouse1_mapY
if var.Mouse1_Z < 0 then var.Mouse1_Z = 0
if var.Mouse1_Z > var.Mouse1_mapZ then var.Mouse1_Z = var.Mouse1_mapZ
//Преобразуем диапазон зоны от -524 до 524 в диапазон джойстика от -1 до +1
Var.Mouse1_JX = MapRange(var.Mouse1_X, -var.Mouse1_mapX, var.Mouse1_mapX, -1 ,1)
Var.Mouse1_JY = MapRange(var.Mouse1_Y, -var.Mouse1_mapY, var.Mouse1_mapY, -1 ,1)
Var.Mouse1_JZ = MapRange(var.Mouse1_Z, 0, var.Mouse1_mapZ, -1 ,1)
}
//Опрос мышек ### КОНЕЦ ###
//Назначение осей джоя ### НАЧАЛО ###
//Тяга
ppjoy.Analog2 = - var.mouse1_JZ
//Руль высоты
ppjoy.Analog1 = var.mouse1_JY
//Руль крена
ppjoy.Analog0 = var.mouse1_JX
//Руль направления
ppjoy.Analog3 = Joystick.roll
// Центрирование осей
if Mouse1.Rightbutton = true {
var.Mouse1_X = 0
var.Mouse1_Y = 0
}
//ЛКМ=Кнопка 1
ppjoy.Digital0 = mouse.LeftButton
//Назначение осей джоя ### КОНЕЦ ###
}