Controls 系统

将特定输入与一般输入事件连接的内置系统。

注意: 这个系统提供的方法可能会在未来的 Crafty 版本中有所变化。越来越多的输入类型将会被支持。

事件

TriggerInputDown [Data = {name}]
当触发组被激活时
TriggerInputUp [Data = {name, downFor}]
当触发组释放时
DirectionalInput [Data = {name, x, y}]
当定向输入发生变化时

方法

Back to top

.defineDpad()

defineDpad(string name, obj definition[, obj options])
name

按键输入的名称

definition

一个定义按键输入和方向的对象

options

按键的一组设置

一组方向输入是方向控制键到控制方向的映射。

options 对象有两个属性:

  • normalize (bool): 如果为true,定向输入将被归一化为单位向量。默认为false。
  • multipleDirectionBehavior (string): 当多个方向同时活动时该如何表现。值可以是 "first", "last", 和 "all". 默认为 "all".

例子

// Define a two-direction dpad, with two keys each bound to the right and left directions
Crafty.s("Controls").defineDpad("MyDpad", {
  {RIGHT_ARROW: 0, LEFT_ARROW: 180, D: 0, A: 180}
});
Back to top

.defineTriggerGroup()

defineTriggerGroup(string name, obj definition)
name

触发器组的名称。

definition

定义触发器输入的对象。

一个触发组是输入映射到相同事件的集合。 如果任何输入被结束,触发也会结束。如果都开启,那么它也会开启。当触发状态切换时,TriggerInputUpTriggerInputDown事件被触发。

输入到触发的映射定义对象如下:

  • keys: Crafty 的按键码数组
  • mouseButtons: Crafty 的鼠标按键码数组

例子

// Define a trigger group mapped to the left mouse button and the A and B keys.
Crafty.s("Controls").defineTriggerGroup("MyTrigger", {
  mouseButtons: [Crafty.mouseButtons.LEFT],
  keys: [Crafty.keys.A, Crafty.keys.B]
});