Skip to content

Jamepad controller implementation

Benjamin Schulte edited this page Oct 30, 2018 · 12 revisions

Thanks to born2snipe for his work on this.

Just change the following lines in your build.gradle's desktop project to switch from libGDX controller implementation to Jamepad:

    compile "com.badlogicgames.gdx:gdx-controllers-desktop:$gdxVersion"
    compile "com.badlogicgames.gdx:gdx-controllers-platform:$gdxVersion:natives-desktop"

to:

    compile "de.golfgl.gdxcontrollerutils:gdx-controllers-jamepad:$cuversion"

This just affects the Desktop project. The implementation is compatible to the libGDX implementations, no code changes in your project needed.

Note: desktop-jamepad is implemented in controllerutils in v0.1.2 and above.

Ups:

  • Hotplugging!
  • A big controller mapping database which ensures your users probably won't need to remap their buttons

Downs:

  • If a connected controller is not in the mapping databse, it is not shown.
  • D-Pad/POV values will be reported as buttons down/up. (Of course, it is just some piece of work to be done to map the D-Pad buttons to POV values)

Work still to be done:

  • Button to D-Pad mapping (can be done like in GWT implementation)
  • Core-Project Class with standard button constants for WebGL, Android and Jamepad