FreeJoy

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

Function reference

JoyCount()   Counts the number of joysticks.

Returns: The number of joysticks and gamecontrollers connected to the system.

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

JoyButtonCaps(port)   Available buttons (on/off controls) on a joystick.

Returns: A bitfield representing which buttons are present.


JoyAxisCaps(port)   Available axis (proportional controls) on a joystick.

Returns: A bitfield representing which axis are available.
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


JoyName$(port)   Get the name of the joysticks connected to the specified port.

Returns: The system name of the joystick.


JoyDown( button,port=0 )   Test the status of a joystick button.

Returns: True if the button is pressed.


JoyX#( port=0 )   Reports the horizontal position of the joystick.

Returns: Zero if the joystick is centered, -1 if Left, 1 if Right or a value inbetween.


JoyY#( port=0 )   Reports the vertical position of the joystick.

Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.


JoyZ#( port=0 )   Reports the position of the joystick's Z axis if supported.

Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.


JoyR#( port=0 )   Reports the position of the joystick's R axis if supported.

Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.


JoyU#( port=0 )   Reports the position of the joystick's U axis if supported.

Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween. 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.


JoyV#( port=0 )   Reports the position of the joystick's V axis if supported.

Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween. 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.


JoyYaw#( port=0 )   Reports the position of the joystick's YAW axis if supported.

Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.


JoyPitch#( port=0 )   Reports the position of the joystick's PITCH axis if supported.

Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.


JoyRoll#( port=0 )   Reports the position of the joystick's ROLL axis if supported.

Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.


JoyHat#( port=0 )   Reports the position of the joystick's HAT controller if supported.

Returns: Zero if the joystick is centered, -1.0 if Up, 1.0 if Down or a value inbetween.


JoyWheel#( port=0 )   Reports the position of the joystick's YAW axis if supported.

Returns: Zero if the joystick is centered, -1.0 if Left, 1.0 if Right or a value inbetween.


Module Information

Modulepub.freejoy
Version 1.00
Author Simon Armstrong
License Public Domain
Copyright Blitz Research Ltd
Modserver BRL