FreeBASIC マニュアルのトップに戻る

FreeBASIC Getjoystick

目次→描画ライブラリー参考→ユーザ入力関連GETJOYSTICK←オリジナル・サイト

GETJOYSTICK 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

接続されているゲーミング装置から、ボタンと操作軸の情報を、読みます。

構文:
declare function Getjoystick ( byval id as long, 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 Long

用法:
result = Getjoystick ( id[, buttons[, a1[, a2[, a3[, a4[, a5[, a6[, a7[, a8]]]]]]]]] )

パラメタ:
id
装置 ID 番号(0 - 15)
buttons
ボタンの状態
a1
1番目の、軸値
a2
2番目の軸値
a3
3番目の軸値
a4
4番目の軸値
a5
5番目の軸値
a6
6番目の軸値
a7
7番目の軸値
a8
8番目の軸値

戻り値:
0 は成功で、1 は失敗です。
浮動小数点形式で、すべての軸の位置を返します。

記述:
Getjoystick は、ボタンの状態、および 8 本までの軸の位置を検索します。ジョイスティックは、0〜15 の id 番号で認識します。
ボタンは、Getmouse と同様の方法で、格納します。buttons の各ビットがボタンを表しています。

それぞれの有効な軸に対して、-1.01.0 の間の単精度値を返します。
軸がコントローラで存在していないなら、-1000.00 の値を返します。

Getjoystick は、無事終了のときに 0 を返します。
失敗の場合には、1 を返します。
失敗は、不当なジョイスティック番号を指定することによって、引き起こされる場合があります。また、存在しないジョイスティックを指定した場合や、ジョイスティックAPIでの失敗の場合もあります。

Getjoystick が返すエラー・コードは、次の行で Err を使って確認できます。Getjoystick の関数バージョンは、エラーコードを直接 32 bit Long で返します。

例:
注:FreeBASIC 1.08〜 で、SetEnviron を追加しなくても、日本語環境で描画画面が表示されるように改善されました。
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")

Screen 12

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

Const JoystickID = 0


'This line checks to see if the joystick is ok.
'この行は、ジョイスティックが間違いないかどうか確認し、チェックするものです。


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



方言差:

QBからの違い:

参照:

ユーザ入力関連に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2022-03-25 11:42:35
日本語翻訳:WATANABE Makoto、原文著作者: JasonFirth

ホームページのトップに戻る

表示-非営利-継承