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 )
描述: 清除操纵杆按钮状态。