Difference between revisions of "Common Organization of Controls Kit"

m (Changelog)
m (Features)
Line 8: Line 8:
  
 
== Features ==
 
== Features ==
* Create one or several control objects, with each of them having their own controls set
+
* Multiple separate control objects
* Define, extend and access sets of control bindings with ease
+
* Comprehensive controls setup
* Define and use default controls configurations
+
* Support for "defaults"
* Set up XBox360 controller in one function call
+
* All available input devices supported
* Utilize all input devices and all their abilities supported by LÖVE
+
* Capture and bind user input
* Capture user input device and value and automatically bind it; bind a device and key manually; call a callback when input is captured
+
* Joystick deadzones and hat remapping, hat modes, pick up previously used joysticks
* Optionally block input callbacks and update function during input capture, to ensure safe capture
+
* Delta modes and inversion modes
* Unbind controls in easy way
+
* Literal or numerical arguments to functions; number of helper functions
* Set mouse offset and output values scaling factor; ignore mouse motion during input capture
 
* Set joystick axis deadzones
 
* Map joystick buttons to joystick hats
 
* Delta and inversion modes for all input devices, negative values cutoff
 
* Reload (re-pickup) previously used joysticks
 
* 4 psychoanatomic adjustments for joystick hat lateral input, separate option for allowing diagonal input
 
* Literal arguments for enum-accepting functions, along with numbers; functions to convert literal to numerical values
 
* "Control Mode" virtual variable (have no actual effect, a convenience feature)
 
  
This is a feature list of the latest version, which is 1.2
+
Scheduled:
 +
 
 +
* XBox360 controller support for all OSes (for now only works with Windows, partially)
 +
* Functions to save/load configurations (for now simple serialization of the object will do)
  
 
== Links ==
 
== Links ==

Revision as of 17:50, 31 August 2013

Common Organization of Controls Kit is a tool for handling control over your LÖVE games.

It enables you to easily define a (several of) set of control bindings to be used in your game, and provides a very user-friendly methods for handling it, e.g. you can access all gathered data as a table member, and it has a function to grab a user input to store it into control map, and to unset it, which is really handy in controls setup screen etc.

This library have much detail to it, please consutlt the manual.

NOTE: the library only support latest released version of LÖVE, and the author only support latest released version of the library. There may be no backwards compatibility.

Features

  • Multiple separate control objects
  • Comprehensive controls setup
  • Support for "defaults"
  • All available input devices supported
  • Capture and bind user input
  • Joystick deadzones and hat remapping, hat modes, pick up previously used joysticks
  • Delta modes and inversion modes
  • Literal or numerical arguments to functions; number of helper functions

Scheduled:

  • XBox360 controller support for all OSes (for now only works with Windows, partially)
  • Functions to save/load configurations (for now simple serialization of the object will do)

Links

Changelog

  • 1.2:
    • fixed:
      • a bunch of potential pitfalls
      • joystick axes and hats are now correctly captured
    • added:
      • no-cutoff for negative values for inversion
      • multiple binds per action via "options" tables
      •  :setJoystickDeadzone and getJoystickDeadzone gets and sets joystick deadzone per axis
      •  :getJoysticksList returns list of all found joysticks names and numbers
      •  :remapJoystickHat maps four joystick buttons to act like joystick hat
      •  :bind directly binds mappings
      •  :getBinded returns list of binds for map
      •  :getEmptyOption returns next (in arbitrary order) unused option for map
      •  :getControlModesList returns list of all control modess
      •  :getConvertedDevice, :getConvertedAxis, :getConvertedInverse, :getConvertedDelta
      • cutoff delta modes and inversion modes (only pass positive/negative part)
      •  :setDefaultXBox360 function (currently used XBox360 controller API in Windows version sucks pretty hard)
      •  :capturedDataExplode helper function (can't pass table to LÖVE's events)
    • changed:
      •  :setCapture now accepts "callback" argument to be used instead of instant automatical binding
      •  :grab now would either call callback function or instantly bind captured input
      •  :unset renamed to :unbind
      • controls data table for assignment now have different format
      •  :getJoystickHatMode and :getControlMode now only return literal value
      • joystick axis delta mode no longer requires stick to be on the corresponding side either (that was silly, too)
    • removed:
      •  :getDeviceName (replaced with :getBinded)
  • 1.1:
    • fixed:
      • capturing an input now sets both "previous" and "current" tables to captured input value
      • mouse axis delta mode no longer requires mouse pointer to be on the corresponding side of the offset
    • added:
      • getDeviceName function returns literal name of a device assiged to specified map
    • changed:
      • reloadJoystick now returns true on success
  • 1.0:
    • first release version

See also