Пожалуйста.
У меня хатка по дефолту почему-то не работала, поэтому замапил вручную. Предпоследние две строки в мейне - чтобы кнопки, управляющие переключением, не мешались нигде. Кроме того, сделать такое же поведение осей можно было бы другим способом, с использованием функций DXAxis. Правда, тут слои не используются, чисто переключатель через кнопки. А вообще, через эвент хендлер можно организовать очень извращенное поведение джойстика.Код:include "target.tmh" //program startup int main() { Configure(&RMFD, MODE_EXCLUDED); Configure(&LMFD, MODE_EXCLUDED); Configure(&HCougar, MODE_EXCLUDED); Configure(&Joystick, MODE_EXCLUDED); Configure(&Throttle, MODE_EXCLUDED); if(Init(&EventHandle, CREATE_JOYSTICK)) return 1; MapAxis(&T16000, JOYX, DX_X_AXIS); MapAxis(&T16000, JOYY, DX_Y_AXIS); MapAxis(&T16000, RUDDER, DX_ZROT_AXIS); MapAxis(&T16000, THR, DX_SLIDER_AXIS); MapKey(&T16000, H1U, DXHATUP); MapKey(&T16000, H1R, DXHATRIGHT); MapKey(&T16000, H1L, DXHATLEFT); MapKey(&T16000, H1D, DXHATDOWN); MapKey(&T16000, B11, 0); MapKey(&T16000, B12, 0); MapKey(&T16000, TS3, TEMPO(DX31, DX32, 333)); } //event handler int EventHandle(int type, alias o, int x) { if (x == B11 | x == B12) { if(T16000[B12] == 1) { MapAxis(&T16000, THR, DX_XROT_AXIS); return 0 ; } if(T16000[B11] == 1) { MapAxis(&T16000, THR, DX_YROT_AXIS); return 0 ; } MapAxis(&T16000, THR, DX_SLIDER_AXIS); } DefaultMapping(&o, x); }





Ответить с цитированием