跳至內容

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 )

描述: 清除操縱桿按鈕狀態。

華夏公益教科書