InputPlugin

.Input. InputPlugin

输入插件属于场景,并为其处理所有与输入相关的事件和操作. 您可以使用`this.input`从场景中访问它. 它直接发出事件.例如,您可以: ```javascript this.input.on('pointerdown', callback, context); ``` 在游戏画布上的任何地方监听指针下降事件. 游戏对象可以通过调用其 `setInteractive` 方法进行输入.之后他们 将直接发出输入事件: ```javascript var sprite = this.add.sprite(x, y, texture); sprite.SetInteractive(); sprite.on('pointerdown', callback, context); ``` 有许多与输入相关的游戏配置选项. 请参见输入配置对象,包括如何处理Phaser 监听画布之外的输入事件,如何设置指针的默认数量,输入 捕捉设置等. 更多信息请参见输入示例和教程. **角度输入坐标不正确* * 如果你在角度范围内使用相位器,并且使用nglf或者路由器,来制作相位器游戏所在的组件 改变状态(即.出现或消失),然后你需要通知比例管理器,因为角度会弄乱 相位器无法直接检测到的DOM.依次调用 `this.scale.updateBounds()` 作为您的游戏init的一部分 刷新画布DOM边界值,Phaser使用它来计算输入点位置.

Constructor

new InputPlugin(scene)

Since:
  • 3.0.0
Parameters:
Name Type Description
scene Phaser.Scene 这个输入插件负责的场景的引用.

Extends

Members

(readonly) activePointer :Phaser.Input.Pointer

Since:
  • 3.0.0
当前活动的输入指针.
Type:

cameras :Phaser.Cameras.Scene2D.CameraManager

Since:
  • 3.0.0
场景摄像机管理器的参考.该属性在 `boot` 方法中设置.
Type:

displayList :Phaser.GameObjects.DisplayList

Since:
  • 3.0.0
场景显示列表的参考.该属性在 `boot` 方法中设置.
Type:

dragDistanceThreshold :number

Since:
  • 3.0.0
Default Value:
  • 0
指针在被按住时必须移动的距离,以像素为单位,在它认为自己被拖动之前.
Type:
  • number

dragTimeThreshold :number

Since:
  • 3.0.0
Default Value:
  • 0
指针认为自己在拖动之前必须按住的时间,以毫秒为单位. 默认轮询速率是仅在移动时轮询,因此一旦达到时间阈值 移动鼠标之前,拖动事件不会开始.如果你想马上开始 当达到时间阈值时,必须通过调用 SetPollOnlYsetPollRate.
Type:
  • number

enabled :boolean

Since:
  • 3.5.0
Default Value:
  • true
这个输入插件将处理DOM输入事件.
Type:
  • boolean

(nullable) gamepad :Phaser.Input.Gamepad.GamepadPlugin

Since:
  • 3.10.0
游戏板插件类的一个实例,如果通过场景或游戏配置属性启用的话. 使用它来创建连接到浏览器的游戏手柄,并响应游戏手柄按钮.
Type:

(readonly) isOver :boolean

Since:
  • 3.16.0
游戏画布上目前有鼠标或触摸指针吗?
Type:
  • boolean

(nullable) keyboard :Phaser.Input.Keyboard.KeyboardPlugin

Since:
  • 3.10.0
键盘插件类的一个实例,如果启用 `input.keyboard` 通过场景或游戏配置. 使用它来创建键对象并监听键盘特定事件.
Type:

manager :Phaser.Input.InputManager

Since:
  • 3.0.0
游戏输入管理器的参考.
Type:

(nullable) mouse :Phaser.Input.Mouse.MouseManager

Since:
  • 3.0.0
对鼠标管理器的引用. 仅当您的游戏配置文件中启用了鼠标支持时,才设置此属性. 如果您只想访问鼠标指针,请改用 `mousePointer` 属性.
Type:

(readonly) mousePointer :Phaser.Input.Pointer

Since:
  • 3.10.0
鼠标有自己独特的指针对象,如果制作桌面特定的游戏,可以直接引用. 如果您同时支持桌面设备和触摸设备,则不要使用此属性,而应使用 `activePointer` 它将总是映射到最近交互的指针.
Type:

(readonly) pointer1 :Phaser.Input.Pointer

Since:
  • 3.10.0
基于触摸的指针对象. 默认情况下,这将是 `undefined` ,除非您使用 `addPointer` 添加新指针.
Type:

(readonly) pointer2 :Phaser.Input.Pointer

Since:
  • 3.10.0
基于触摸的指针对象. 默认情况下,这将是 `undefined` ,除非您使用 `addPointer` 添加新指针.
Type:

(readonly) pointer3 :Phaser.Input.Pointer

Since:
  • 3.10.0
基于触摸的指针对象. 默认情况下,这将是 `undefined` ,除非您使用 `addPointer` 添加新指针.
Type:

(readonly) pointer4 :Phaser.Input.Pointer

Since:
  • 3.10.0
基于触摸的指针对象. 默认情况下,这将是 `undefined` ,除非您使用 `addPointer` 添加新指针.
Type:

(readonly) pointer5 :Phaser.Input.Pointer

Since:
  • 3.10.0
基于触摸的指针对象. 默认情况下,这将是 `undefined` ,除非您使用 `addPointer` 添加新指针.
Type:

(readonly) pointer6 :Phaser.Input.Pointer

Since:
  • 3.10.0
基于触摸的指针对象. 默认情况下,这将是 `undefined` ,除非您使用 `addPointer` 添加新指针.
Type:

(readonly) pointer7 :Phaser.Input.Pointer

Since:
  • 3.10.0
基于触摸的指针对象. 默认情况下,这将是 `undefined` ,除非您使用 `addPointer` 添加新指针.
Type:

(readonly) pointer8 :Phaser.Input.Pointer

Since:
  • 3.10.0
基于触摸的指针对象. 默认情况下,这将是 `undefined` ,除非您使用 `addPointer` 添加新指针.
Type:

(readonly) pointer9 :Phaser.Input.Pointer

Since:
  • 3.10.0
基于触摸的指针对象. 默认情况下,这将是 `undefined` ,除非您使用 `addPointer` 添加新指针.
Type:

(readonly) pointer10 :Phaser.Input.Pointer

Since:
  • 3.10.0
基于触摸的指针对象. 默认情况下,这将是 `undefined` ,除非您使用 `addPointer` 添加新指针.
Type:

pollRate :number

Since:
  • 3.0.0
Default Value:
  • -1
指针应该多久检查一次? 该值是一个时间,以毫秒为单位,是游戏步骤之间必须经过的时间 指针将再次被轮询.当一个指针被轮询时,它运行一个命中测试来查看哪个游戏 对象当前在它的下面,或者正在与它交互. 如果指针被用户移动,按下或释放,将会被检查. 此属性仅控制在没有更新的情况下轮询它们的频率. 如果你想让游戏对象不断地检查指针,甚至 如果指针本身没有移动. 设置为0以不断轮询.设置为-1,仅在用户移动时轮询.
Type:
  • number

scene :Phaser.Scene

Since:
  • 3.0.0
这个输入插件负责的场景的引用.
Type:

settings :Phaser.Types.Scenes.SettingsObject

Since:
  • 3.5.0
场景系统设置的参考.
Type:

systems :Phaser.Scenes.Systems

Since:
  • 3.0.0
场景系统类的参考.
Type:

topOnly :boolean

Since:
  • 3.0.0
Default Value:
  • true
当设置为 `true` (默认)时,输入插件将通过只从 显示列表中最上面的游戏对象. 如果设置为 `false` ,它将从指针下的所有游戏对象发出事件,而不仅仅是顶部的对象.
Type:
  • boolean

(readonly) x :number

Since:
  • 3.0.0
基于摄像机列表中第一个摄像机的活动指针的x坐标. 只有当你的游戏只有一个未转换的摄像头并且不使用多点触控时,这才是安全的.
Type:
  • number

(readonly) y :number

Since:
  • 3.0.0
基于摄像机列表中第一个摄像机的活动指针的y坐标. 只有当你的游戏只有一个未转换的摄像头并且不使用多点触控时,这才是安全的.
Type:
  • number

Methods

addListener(event, fn, contextopt) → {this}

Since:
  • 3.0.0
Inherited From:
为给定事件添加侦听器.
Parameters:
Name Type Attributes Default Description
event string | symbol 事件名称.
fn function 侦听器函数.
context * <optional>
this 用来调用侦听器的上下文.
Returns:
`this`.
Type
this

addPointer(quantityopt) → {Array.<Phaser.Input.Pointer>}

Since:
  • 3.10.0
向输入管理器添加新的指针对象. 默认情况下,Phaser创建两个指针对象: `mousePointer` 和 `pointer1` . 您可以通过调用此方法或设置 `input.activePointers` 属性来创建更多 在游戏配置中,最多10个指针. 一旦添加了前10个指针,就可以通过 `InputPlugin.pointerX` 属性获得它们 通过这种方法.
Parameters:
Name Type Attributes Default Description
quantity number <optional>
1 要创建的新指针的数量.总共最多允许10个.
Returns:
包含所有已创建的新指针对象的数组.
Type
Array.<Phaser.Input.Pointer>

clear(gameObject, skipQueueopt) → {Phaser.GameObjects.GameObject}

Since:
  • 3.0.0
清除一个游戏对象,使其不再有一个与之相关联的交互对象. 然后,游戏对象排队等待下次更新时从输入插件中删除.
Parameters:
Name Type Attributes Default Description
gameObject Phaser.GameObjects.GameObject 将移除其交互式对象的游戏对象.
skipQueue boolean <optional>
false 跳过将此游戏对象添加到删除队列?
Returns:
移除了互动对象的游戏对象.
Type
Phaser.GameObjects.GameObject

disable(gameObject)

Since:
  • 3.0.0
禁用单个游戏对象的输入. 禁用输入的游戏对象仍然保留其交互对象组件,并可以重新启用 在任何时候,通过将它传递给 `InputPlugin.enable` .
Parameters:
Name Type Description
gameObject Phaser.GameObjects.GameObject 游戏对象的输入系统被禁用.

emit(event, …argsopt) → {boolean}

Since:
  • 3.0.0
Inherited From:
调用为给定事件注册的每个侦听器.
Parameters:
Name Type Attributes Description
event string | symbol 事件名称.
args * <optional>
<repeatable>
将传递给事件处理程序的附加参数.
Returns:
`true` 如果事件有侦听器,则为 `false` .
Type
boolean

enable(gameObject, hitAreaopt, hitAreaCallbackopt, dropZoneopt) → {this}

Since:
  • 3.0.0
启用游戏对象进行交互. 如果游戏对象已经有一个交互对象组件,它将被启用并返回. 否则,将创建一个新的交互式对象组件,并将其分配给游戏对象的 `input` 属性. 输入通过使用命中区域工作,这些几乎总是几何形状,如矩形或圆形,充当命中区域 游戏对象.然而,你可以提供自己的命中区域形状和回调,如果你想处理一些更高级的 输入检测. 如果没有提供参数,它将尝试基于游戏对象使用的纹理框架创建一个矩形命中区域.如果 这不是一个纹理绑定对象,如图形或位图文本对象,这将失败,您需要提供一个特定的 让它可以使用. 您还可以提供一个输入配置对象作为该方法的唯一参数.
Parameters:
Name Type Attributes Default Description
gameObject Phaser.GameObjects.GameObject 允许输入的游戏对象.
hitArea Phaser.Types.Input.InputConfiguration | any <optional>
输入配置对象或定义游戏对象命中区域的几何形状.如果未指定,将使用矩形.
hitAreaCallback Phaser.Types.Input.HitAreaCallback <optional>
调用 `contains` 函数检查指针是否在命中区域内.
dropZone boolean <optional>
false 这个游戏对象到底是不是掉落区?
Returns:
这个输入插件.
Type
this

enableDebug(gameObject, coloropt) → {this}

Since:
  • 3.19.0
为给定的游戏对象创建输入调试形状. 在调用此方法之前,游戏对象必须已经启用输入. 这是为了在开发和调试期间帮助您. 调试形状只能为使用标准相位器几何图形作为输入的游戏对象创建, 包括:圆,椭圆,直线,多边形,矩形和三角形. 默认情况下,使用自动命中区域的游戏对象使用矩形,因此也可以工作. 调试形状被创建并添加到显示列表中,然后与游戏对象保持同步 它与.如果您需要自己修改它,例如隐藏它,您可以通过 游戏对象属性: `zGameObject.input.hitareDebug` . 在已经有调试形状的游戏对象上调用此方法将首先销毁旧形状, 在创建一个新的之前.如果希望完全移除调试形状,应该调用 方法 `InputPlugin.removeDebug` . 请注意,调试形状将只显示输入区域的轮廓.如果输入测试使用 例如,像素完美检查,则不显示.如果使用自定义形状,则 不扩展一个基本的相位器几何体对象,作为你的命中区域,那么这个方法不会 工作.
Parameters:
Name Type Attributes Default Description
gameObject Phaser.GameObjects.GameObject 为其创建输入调试形状的游戏对象.
color number <optional>
0x00ff00 调试形状的轮廓颜色.
Returns:
这个输入插件.
Type
this

eventNames() → {Array.<(string|symbol)>}

Since:
  • 3.0.0
Inherited From: