inputs, actions
inputs, actions
This module (inputs
) allows you to manipulate Actions. You can create, modify, or delete new actions during the game.
actions
stores existing actions. If you have created an action Move
, then it will be available at actions.Move
. Each of them is an instance of JS class CtAction
.
Here is a generic example on how to use actions in your game:
/**
* Move the copy around.
* See "Project" > "Actions and input methods"
* and "Actions" in the docs.
*/
this.hspeed = 8 * actions.MoveX.value; // Move by X axis
this.vspeed = 8 * actions.MoveY.value; // Move by Y axis
if (actions.Shoot.pressed) {
templates.copy('Bullet', this.x, this.y);
}
###
Move the copy around.
See "Project" > "Actions and input methods"
and "Actions" in the docs.
###
@hspeed = 8 * actions.MoveX.value # Move by X axis
@vspeed = 8 * actions.MoveY.value # Move by Y axis
if actions.Shoot.pressed
templates.copy 'Bullet', @x, @y
Actions' methods and properties
ctAction.value ⇒ Number
A scalar value between -1 and 1. 0 means that there is no input at the current frame, e.g. all the gamepad's thumbsticks are in the resting position or all buttons were released. When used with a keyboard and mouse, actions' values will alternate between 0, 1, and -1 (if multipliers were used). Gamepad thumbsticks and other custom manipulators may produce other values.
ctAction.pressed ⇒ Boolean
Returns whether the action became active in the current frame, either by a button just pressed or by using a scalar input.
Returns: Boolean
– true
for being pressed and false
otherwise
ctAction.released ⇒ Boolean
Returns whether the action became inactive in the current frame,
either by releasing all buttons or by resting all scalar inputs.
Returns: Boolean
– true
for being released and false
otherwise
ctAction.down ⇒ Boolean
Returns whether the action is active, e.g. by a pressed button
or a currently used scalar input
Returns: Boolean
– true
for being active and false
otherwise
ctAction.methodExists(code) ⇒ Boolean
Checks whether the current action listens to a given input method.
This does not check whether this input method is supported by ct.js.
Returns: Boolean
– true
if it exists, false
otherwise.
Param | Type | Description |
---|---|---|
code | String | The code to look up. |
ctAction.addMethod(code, [multiplier]) ⇒ void
Adds a new input method to listen.
Param | Type | Description |
---|---|---|
code | String | The input method's code to listen to. Must be unique per action. |
[multiplier] | Number | An optional multiplier, e.g. to flip its value. Often used with two buttons to combine them into a scalar input identical to joysticks |
ctAction.removeMethod(code) ⇒ void
Removes the provided input method from an action.
Param | Type | Description |
---|---|---|
code | String | The input method to remove. |
ctAction.setMultiplier(code, multiplier) ⇒ void
Changes the multiplier for an input method with the provided code.
This method will produce a warning if one is trying to change an input method that is not listened to by this action.
Param | Type | Description |
---|---|---|
code | String | The input method's code to change |
multiplier | Number | The new value |
ctAction.update() ⇒ Number
Recalculates the digital value of an action.
Returns: Number
– A scalar value between -1 and 1.
ctAction.reset() ⇒ void
Resets the state of the action, setting its value
to 0
and its pressed
, down
, released
states to false
.
Creating and removing new actions programmatically
inputs.addAction(name, methods) ⇒ CtAction
Adds a new action and puts it into actions
.
Param | Type | Description |
---|---|---|
name | String | The name of an action, as it will be used in actions . |
methods | Array<Object> | A list of input methods. This list can be changed later. |
Returns: CtAction
– The created action
Example:
inputs.addAction('Move', [{
code: 'keyboard.ArrowLeft',
multiplier: -1
}, {
code: 'keyboard.ArrowRight'
}, {
code: 'keyboard.KeyA',
multiplier: -1
}, {
code: 'keyboard.KeyD'
}]);
inputs.addAction 'Move', [
{
code: 'keyboard.ArrowLeft'
multiplier: -1
}
{
code: 'keyboard.ArrowRight'
}
{
code: 'keyboard.KeyA'
multiplier: -1
}
{
code: 'keyboard.KeyD'
}
]
inputs.removeAction(name, methods) ⇒ void
Removes an action with a given name.
Param | Type | Description |
---|---|---|
name | String | The name of an action |
Returns: void