Multiway 组件

用于将键绑定到方向并使实体相应移动。

Multiway 监听方向时间,然后基于当前的方向和速度设置每一帧的速度。

如果某一特定轴(x或y)没有定义速度,那么该轴上的速度就不会被设定。

这种行为在大多数情况下是有效的,但如果在组件有效时自己操纵速度,可能会导致不希望的行为。如果你需要解决碰撞,建议直接修正位置,而不是操纵速度。如果在碰撞发生时仍然需要重置速度,请确保在碰撞解决后重新添加要重置的速度。

此外,该组件为实体提供了 Motion 的方法和事件。

参见

方法

Back to top

.multiway()

public this .multiway([Number speed,] Object keyBindings[, Object options])
speed

以像素为单位的移动速度

keyBindings

什么键应该使实体朝哪个方向前进。方向以度数表示。

options

An object with options for normalize and multipleDirectionBehavior.

初始化速度和按键绑定的构造函数。组件将监听关键事件并适当地移动实体。当按键被按下时,可以改变方向和速度。

options 参数控制组件的行为,并具有以下缺省值::

  • "normalize": false当设置为true时,方向输入总是1.
  • "multipleDirectionBehavior": "all"如何解决多个方向键同时激活的情况,设置为 "first" 或 "last" 将会在一个时间点只有一个被激活。

例子

this.multiway(150, {UP_ARROW: -90, DOWN_ARROW: 90, RIGHT_ARROW: 0, LEFT_ARROW: 180});
this.multiway({x:150,y:75}, {UP_ARROW: -90, DOWN_ARROW: 90, RIGHT_ARROW: 0, LEFT_ARROW: 180});
this.multiway({W: -90, S: 90, D: 0, A: 180});
Back to top

.speed()

public this .speed(Object speed)
speed

实体在 x 和 y 轴上新的移动速度

以每秒像素为单位改变实体移动的速度。当按键按下时可以调用这个方法改变飞行速度。

如果传递的对象只有x或y属性,则只有沿着该轴的速度将被控制。

例子

this.speed({ x: 150, y: 50 });