Custom Controls
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.
Last modified 2yr ago