BlitzMax/模組/使用者輸入/操縱桿
BlitzMax freejoy 模組包含一些命令,這些命令報告連線到系統的任何操縱桿和遊戲手柄的狀態。
函式 JoyCount()
描述: 計算操縱桿的數量。
返回值: 連線到系統的操縱桿和遊戲手柄的數量。
示例:
' testjoy.bmx Import Pub.FreeJoy Strict If Not JoyCount() RuntimeError "No joystick found!" Graphics 640,480 Function drawprop(n$,p#,y) Local w DrawText n$,0,y w=Abs(p)*256 If p<0 DrawRect 320-w,y,w,16 Else DrawRect 320,y,w,16 EndIf End Function Local t=0 While Not KeyHit(KEY_ESCAPE) Cls SetColor 255,255,255 Local n=JoyCount() DrawText "joycount="+n,0,0 DrawText "JoyName(0)="+JoyName(0),0,20 DrawText "JoyButtonCaps(0)="+Bin$(JoyButtonCaps(0)),0,40 DrawText "JoyAxisCaps(0)="+Bin$(JoyAxisCaps(0)),0,60 For Local i=0 To 31 SetColor 255,255,255 If JoyDown(i) SetColor 255,0,0 DrawOval i*16,80,14,14 Next SetColor 255,255,0 drawprop "JoyX=",JoyX(0),100 drawprop "JoyY:",JoyY(0),120 drawprop "JoyZ:",JoyZ(0),140 drawprop "JoyR:",JoyR(0),160 drawprop "JoyU:",JoyU(0),180 drawprop "JoyV:",JoyV(0),200 drawprop "JoyHat:",JoyHat(0),220 drawprop "JoyWheel:",JoyWheel(0),240 DrawRect 0,280,t,10 t=(t+1)&511 Flip Wend End
函式 JoyButtonCaps(port)
描述: 操縱桿上可用的按鈕(開/關控制)。
返回值: 表示哪些按鈕存在的位域。
函式 JoyAxisCaps(port)
描述: 操縱桿上可用的軸(比例控制)。
返回值: 表示哪些軸可用的位域。
資訊: 返回值的位位置對應於在 FreeJoy 模組中定義的以下常量
- Const JOY_X=0
- Const JOY_Y=1
- Const JOY_Z=2
- Const JOY_R=3
- Const JOY_U=4
- Const JOY_V=5
- Const JOY_YAW=6
- Const JOY_PITCH=7
- Const JOY_ROLL=8
- Const JOY_HAT=9
- Const JOY_WHEEL=10
函式 JoyName$(port)
描述: 獲取連線到指定埠的操縱桿的名稱。
返回值: 操縱桿的系統名稱。
函式 JoyDown( button,port=0 )
描述: 測試操縱桿按鈕的狀態。
返回值: 如果按鈕被按下則為 True。
函式 JoyHit( button,port=0 )
描述: 檢查操縱桿按鈕按下。
返回值: button 被按下的次數。
資訊: 返回值表示自上次呼叫 JoyHit(使用相同的指定 button)以來 button 被按下的次數。
函式 JoyX#( port=0 )
描述: 報告操縱桿的水平位置。
返回值: 如果操縱桿居中則為零,如果向左則為 -1,如果向右則為 1,或者介於兩者之間。
函式 JoyY#( port=0 )
描述: 報告操縱桿的垂直位置。
返回值: 如果操縱桿居中則為零,如果向上則為 -1.0,如果向下則為 1.0,或者介於兩者之間。
函式 JoyZ#( port=0 )
描述: 如果支援,則報告操縱桿 Z 軸的位置。
返回值: 如果操縱桿居中則為零,如果向上則為 -1.0,如果向下則為 1.0,或者介於兩者之間。
函式 JoyR#( port=0 )
描述: 如果支援,則報告操縱桿 R 軸的位置。
返回值: 如果操縱桿居中則為零,如果向上則為 -1.0,如果向下則為 1.0,或者介於兩者之間。
函式 JoyU#( port=0 )
描述: 如果支援,則報告操縱桿 U 軸的位置。
返回值: 如果操縱桿居中則為零,如果向上則為 -1.0,如果向下則為 1.0,或者介於兩者之間。
資訊: 操縱桿的 U 值通常對應於操縱桿的“滑塊”或“油門”功能,儘管這可能因操縱桿而異,並非所有操縱桿都可用。
函式 JoyV#( port=0 )
描述: 如果支援,則報告操縱桿 V 軸的位置。
返回值: 如果操縱桿居中則為零,如果向上則為 -1.0,如果向下則為 1.0,或者介於兩者之間。
資訊: 操縱桿的 V 值通常對應於操縱桿的“滑塊”或“油門”功能,儘管這可能因操縱桿而異,並非所有操縱桿都可用。
函式 JoyYaw#( port=0 )
描述: 如果支援,則報告操縱桿 YAW 軸的位置。
返回值: 如果操縱桿居中則為零,如果向上則為 -1.0,如果向下則為 1.0,或者介於兩者之間。
函式 JoyPitch#( port=0 )
描述: 如果支援,則報告操縱桿 PITCH 軸的位置。
返回值: 如果操縱桿居中則為零,如果向上則為 -1.0,如果向下則為 1.0,或者介於兩者之間。
函式 JoyRoll#( port=0 )
描述: 如果支援,則報告操縱桿 ROLL 軸的位置。
返回值: 如果操縱桿居中則為零,如果向上則為 -1.0,如果向下則為 1.0,或者介於兩者之間。
函式 JoyHat#( port=0 )
描述: 如果支援,則報告操縱桿 HAT 控制器的狀態。
返回值: 如果操縱桿居中則為 -1.0,對於向上、向右、向下、向左方向分別為 0.0、0.25、0.5 和 0.75 之間的數值。
函式 JoyWheel#( port=0 )
描述: 如果支援,則報告操縱桿 WHEEL 控制器的狀態。
返回值: 如果操縱桿居中則為零,如果向左則為 -1.0,如果向右則為 1.0,或者介於兩者之間。
函式 FlushJoy( port_mask=~0 )
描述: 清除操縱桿按鈕狀態。