Pub.FreeJoy: Functions Source  


The BlitzMax freejoy module contains commands that report the status of any joysticks and game controllers connected to the system.

Functions

JoyCountCounts the number of joysticks.
JoyButtonCapsAvailable buttons (on/off controls) on a joystick.
JoyAxisCapsAvailable axis (proportional controls) on a joystick.
JoyNameGet the name of the joysticks connected to the specified port.
JoyDownTest the status of a joystick button.
JoyHitCheck for a joystick button press
JoyXReports the horizontal position of the joystick.
JoyYReports the vertical position of the joystick.
JoyZReports the position of the joystick's Z axis if supported.
JoyRReports the position of the joystick's R axis if supported.
JoyUReports the position of the joystick's U axis if supported.
JoyVReports the position of the joystick's V axis if supported.
JoyYawReports the position of the joystick's YAW axis if supported.
JoyPitchReports the position of the joystick's PITCH axis if supported.
JoyRollReports the position of the joystick's ROLL axis if supported.
JoyHatReports the position of the joystick's HAT controller if supported.
JoyWheelReports the position of the joystick's WHEEL controller if supported.
FlushJoyFlush joystick button states.

Function reference

Function JoyCount()
ReturnsThe number of joysticks and gamecontrollers connected to the system.
DescriptionCounts the number of joysticks.
Example
' 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

Function JoyButtonCaps(port)
ReturnsA bitfield representing which buttons are present.
DescriptionAvailable buttons (on/off controls) on a joystick.

Function JoyAxisCaps(port)
ReturnsA bitfield representing which axis are available.
DescriptionAvailable axis (proportional controls) on a joystick.
Information The bit positions of the returned value correspond to the following constants defined in the FreeJoy module:
    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

Function JoyName$(port)
ReturnsThe system name of the joystick.
DescriptionGet the name of the joysticks connected to the specified port.

Function JoyDown( button,port=0 )
ReturnsTrue if the button is pressed.
DescriptionTest the status of a joystick button.

Function JoyHit( button,port=0 )
ReturnsNumber of times button has been hit.
DescriptionCheck for a joystick button press
Information The returned value represents the number of the times button has been hit since the last call to JoyHit with the same specified button.

Function JoyX#( port=0 )
ReturnsZero if the joystick is centered, -1 if Left, 1 if Right or a value inbetween.
DescriptionReports the horizontal position of the joystick.

Function JoyY#( port=0 )
ReturnsZero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.
DescriptionReports the vertical position of the joystick.

Function JoyZ#( port=0 )
ReturnsZero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.
DescriptionReports the position of the joystick's Z axis if supported.

Function JoyR#( port=0 )
ReturnsZero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.
DescriptionReports the position of the joystick's R axis if supported.

Function JoyU#( port=0 )
ReturnsZero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.
DescriptionReports the position of the joystick's U axis if supported.
Information The U value of a joystick usually corresponds to a joystick's 'slider' or 'throttle' feature, although this may vary depending on the joystick, and will not be available with all joysticks.

Function JoyV#( port=0 )
ReturnsZero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.
DescriptionReports the position of the joystick's V axis if supported.
Information The V value of a joystick usually corresponds to a joystick's 'slider' or 'throttle' feature, although this may vary depending on the joystick, and will not be available with all joysticks.

Function JoyYaw#( port=0 )
ReturnsZero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.
DescriptionReports the position of the joystick's YAW axis if supported.

Function JoyPitch#( port=0 )
ReturnsZero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.
DescriptionReports the position of the joystick's PITCH axis if supported.

Function JoyRoll#( port=0 )
ReturnsZero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.
DescriptionReports the position of the joystick's ROLL axis if supported.

Function JoyHat#( port=0 )
Returns-1.0 if the joystick is centered, and values between 0.0, 0.25, 0.5 and 0.75 for the directions Up, Right, Down, Left respectively.
DescriptionReports the position of the joystick's HAT controller if supported.

Function JoyWheel#( port=0 )
ReturnsZero if the joystick is centered, -1.0 if Left, 1.0 if Right or a value inbetween.
DescriptionReports the position of the joystick's WHEEL controller if supported.

Function FlushJoy( port_mask=0 )
DescriptionFlush joystick button states.