User inputs are handled by the InputHandler
which is part of SceneryBase
and Hubable
. Adding inputs can be done in an overwrite of the inputSetup
method of SceneryBase
. First a Behavior
needs to be added before a key can be assigned.
A behavior defines an action which is executed when the corresponding keys are pressed. There are currently the following base behaviors from which can be inherited: ClickBehavior
, DragBehavior
, ScrollBehavior
.
In most cases a ClickBehavior
is used. Example:
val helloClick = object : ClickBehaviour {val output = "Hello World"override fun click(x: Int, y: Int) {logger.info(output + "at $x and $y")}}
For cases where the x
and y
screen positions of the cursor are not needed they are just ignored. Adding a behavior to the InputHandler
is straightforward:
inputHandler?.addBehaviour("hello_click", helloClick)
inputHandler
should be available from an overwrite of the inputSetup
method.
Assigning keys to a behavior works in a similiar fashion:
inputHandler?.addKeyBinding("hello_click", "button1")
This code assigned the earlied added behavior to the first mouse button.
inputHandler?.addKeyBinding("hello_click", "M")
Does the same but for the "M" key.
For more on the available keys and combinations thereof see InputTrigger syntax