| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- Namespace mojo.input
- #rem monkeydoc @hidden
- #end
- Enum GameControllerButton 'uses SDL values
- A=0
- B=1
- X=2
- Y=3
- Back=4
- Guide=5
- Start=6
- LeftStick=7
- RightStick=8
- LeftShoulder=9
- RightShoulder=10
- DpadUp=11
- DpadDown=12
- DpadLeft=13
- DpadRight=14
- End
- #rem monkeydoc @hidden
- #end
- Enum GameControllerAxis 'uses SDL values
- LeftX=0
- LeftY=1
- RightX=2
- RightY=3
- LeftTrigger=4
- RightTrigger=5
- End
- #rem monkeydoc @hidden
- #end
- Class GameController Extends InputDevice
- Method New( axisDevice:InputDevice,buttonDevice:InputDevice,_pointerDevice:InputDevice )
- _axisDevice=axisDevice
- _buttonDevice=buttonDevice
- _pointerDevice=pointerDevice
- For Local i:=0 Until _axisMap.Length
- _axisMap[i]=i
- Next
- For Local i:=0 Until _buttonMap.Length
- _buttonMap[i]=i
- Next
- For Local i:=0 Until _pointerMap.Length
- _pointerMap[i]=i
- Next
- End
-
- Method GetAxis:Float( axis:GameControllerAxis ) Override
- If _axisDevice Return _axisDevice.GetAxis( _axisMap[axis] )
- Return 0
- End
-
- Method GetButton:Bool( button:GameControllerButton ) Override
- If _buttonDevice Return _buttonDevice.GetButton( _buttonMap[button] )
- Return False
- End
-
- Method GetPointer:Vec2i( pointer:Int ) Override
- If _pointerDevice Return _pointerDevice.GetPointer( _pointerMap[pointer] )
- End
-
- Method MapAxis( axis:GameControllerAxis,deviceAxis:Int )
- _axisMap[axis]=deviceAxis
- End
-
- Method MapButton( button:GameControllerButton,deviceButton:Int )
- _buttonMap[button]=deviceButton
- End
-
- Method MapPointer( pointer:Int,devicePointer:Int )
- _pointerMap[pointer]=devicePointer
- End
-
- Function WASD:GameController()
- If Not _wasd
- _wasd=New GameController( Null,Keyboard )
- _wasd.MapButton( GameControllerButton.DpadLeft,Key.A )
- _wasd.MapButton( GameControllerButton.DpadRight,Key.D )
- _wasd.MapButton( GameControllerButton.DpadUp,Key.W )
- _wasd.MapButton( GameControllerButton.DpadDown,Key.S )
- Endif
- Return _wasd
- End
-
- Private
-
- Global _wasd:GameController
-
- Field _axisDevice:InputDevice
- Field _buttonDevice:InputDevice
- Field _pointerDevice:InputDevice
- Field _axisMap:=New Int[6]
- Field _buttonMap:=New Int[16]
- Field _pointerMap:=New Int[10]
-
- End
|