跳至内容

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

[编辑 | 编辑源代码]

函数 JoyButtonCaps(port)

描述: 操纵杆上可用的按钮(开/关控制)。

返回值: 表示哪些按钮存在的位域。

JoyAxisCaps

[编辑 | 编辑源代码]

函数 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 )

描述: 清除操纵杆按钮状态。

华夏公益教科书