GetJoystick
 
Считывает кнопки и оси из прилагаемого игрового устройства

Синтаксис

Declare Function GetJoystick ( ByVal id As Integer, ByRef buttons As Integer = 0, ByRef a1 As Single = 0, ByRef a2 As Single = 0, ByRef a3 As Single = 0, ByRef a4 As Single = 0, ByRef a5 As Single = 0, ByRef a6 As Single = 0, ByRef a7 As Single = 0, ByRef a8 As Single = 0 ) As Integer

Использование

result = GetJoystick( id[, buttons[, a1[, a2[, a3[, a4[, a5[, a6[, a7[, a8]]]]]]]]] )

Параметры

id
Номер id устройства (0 - 15)
buttons
Состояние кнопки
a1
Первое значение оси
a2
Второе значение оси
a3
Третье значение оси
a4
Четвертое значение оси
a5
Пятое значение оси
a6
Шестое значение оси
a7
Седьмое значение оси
a8
Восьмое значение оси

Возвращаемое значение

0 в случае успеха или 1 в случае возникновения ошибки. Все позиции осей возвращаются в формате с плавающей запятой.

Описание

GetJoystick будет извлекать состояние кнопки, и позиции осей до 8 осей для джойстика, определяемого по id, имеющего число от 0 до 15. Кнопки хранятся в аналогичной методике GetMouse, где каждый бит в buttons , представляет кнопку.

Значение одинарной точности -1.0 и 1.0 возвращается для каждой оси. Если ось не существует для контроллера, то возвращается значение -1000.00.

GetJoystick возвращает 0 при успешном завершении или возвращает 1 в случае ошибки. Причиной ошибки может быть неправильный номер указанного джойстика или сбой в API джойстика.

Пример

Screen 12

Dim x As Single
Dim y As Single
Dim buttons As Integer
Dim result As Integer
Dim a As Integer

Const JoystickID = 0

'Эта линия проверяет, в порядке ли джойстик.

If GetJoystick(JoystickID,buttons,x,y) Then 
    Print "Joystick doesn't exist or joystick error."
    Print
    Print "Press any key to continue."
    Sleep
    End
End If


Do
    result = GetJoystick(JoystickID,buttons,x,y)

    Locate 1,1
    Print ;"result:";result;" x:" ;x;" y:";y;" Buttons:";buttons,"","",""
    
    'Эта линия позволит проверить какие нажатия кнопок произведены от 1 до 27.
    For a = 0 To 26 
        If (buttons And (1 Shl a)) Then 
            Print "Button ";a;" pressed.    "
        Else 
            Print "Button ";a;" not pressed."
        End If
    Next a
Loop


Различия диалектов

  • Не доступно в диалекте -lang qb , но есть псевдоним __Getjoystick.

Отличия от QB

  • Новое в FreeBASIC

См. также