InputManager

.Input. InputManager

输入管理器负责在单个相位器游戏实例中处理指针相关系统. 基于游戏配置,它将为鼠标和触摸支持创建处理器. 键盘和游戏手柄是插件,由InputPlugin类直接处理. 然后,它管理事件,指针创建和一般命中测试相关操作. 您很少需要直接与输入管理器交互,因此,它的所有属性和方法 应该被认为是隐私.相反,你应该使用输入插件,这是一个场景级系统,负责 用于处理场景的所有输入事件.

Constructor

new InputManager(game, config)

Since:
  • 3.0.0
Parameters:
Name Type Description
game Phaser.Game 拥有输入管理器的游戏实例.
config object 在游戏配置中设置的输入配置对象.

Members

activePointer :Phaser.Input.Pointer

Since:
  • 3.0.0
最近活动的指针对象. 如果你在游戏中只有一个指针,那么这将是准确的第一个手指触摸,或者鼠标. 如果你的游戏不需要支持多点触控,那么你可以在你的所有游戏中安全地使用这个属性 代码,它将适应鼠标或触摸,基于设备.
Type:

canvas :HTMLCanvasElement

Since:
  • 3.0.0
用于所有DOM事件输入侦听器的画布.
Type:
  • HTMLCanvasElement

config :Phaser.Core.Config

Since:
  • 3.0.0
游戏配置对象,在游戏启动时设置.
Type:

defaultCursor :string

Since:
  • 3.10.0
与游戏互动时使用的默认CSS光标. 有关更多详细信息,请参见 `setDefaultCursor` 方法.
Type:
  • string

enabled :boolean

Since:
  • 3.0.0
Default Value:
  • true
如果设置,输入管理器将每帧运行一次更新循环.
Type:
  • boolean

events :Phaser.Events.EventEmitter

Since:
  • 3.0.0
输入管理器用于从中发出事件的事件发射器实例.
Type:

(readonly) game :Phaser.Game

Since:
  • 3.0.0
拥有输入管理器的游戏实例. 游戏在任何时候都只维护输入管理器的实例.
Type:

globalTopOnly :boolean

Since:
  • 3.0.0
Default Value:
  • true
如果场景列表中最上面的场景接收到输入,它将停止来自的输入 传播到场景列表的任何较低位置,即.如果你在顶部有一个用户界面场景 然后点击它上面的某个东西,这个点击就不会传递给其他人 下面的场景.禁用此选项可让输入事件始终通过所有场景.
Type:
  • boolean

(readonly) isOver :boolean

Since:
  • 3.16.0
游戏画布上目前有鼠标或触摸指针吗? 这是由画布上和输出处理程序自动更新的.
Type:
  • boolean

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

Since:
  • 3.16.0
对键盘管理器类的引用,如果通过`游戏配置`属性启用的话.
Type:

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

Since:
  • 3.0.0
对鼠标管理器类的引用,如果通过`游戏配置`属性启用.
Type:

(nullable) mousePointer :Phaser.Input.Pointer

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

pointers :Array.<Phaser.Input.Pointer>

Since:
  • 3.10.0
添加到游戏中的指针数组. 第一个条目是为鼠标指针保留的,其余的是触摸指针. 默认情况下,启用1个触摸指针.如果您需要更多,请使用 `addPointer` 方法启动它们, 或者在游戏配置中设置 `input.activePointers` 属性.
Type:

(readonly) pointersTotal :number

Since:
  • 3.10.0
每次更新激活和处理的触摸对象的数量. 您可以通过在运行时调用 `addPointer` 或通过 正在游戏配置中设置 `input.activePointers` 属性.
Type:
  • number

scaleManager :Phaser.Scale.ScaleManager

Since:
  • 3.16.0
全球游戏秤管理器参考. 用于所有边界检查和指针缩放.
Type:

(readonly) time :number

Since:
  • 3.16.2
上次更新此输入管理器的时间. 该值由每帧的游戏步骤填充.
Type:
  • number

touch :Phaser.Input.Touch.TouchManager

Since:
  • 3.0.0
触摸管理器类的引用,如果通过`游戏配置`属性启用.
Type:

Methods

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>

(protected) boot()

Since:
  • 3.0.0
启动处理器由Phaser调用.游戏刚开始的时候. 渲染器现在可用.
Fires:

destroy()

Since:
  • 3.0.0
销毁输入管理器及其所有系统. 这样做是没有办法挽回的.

hitTest(pointer, gameObjects, camera, outputopt) → {array}

Since:
  • 3.0.0
使用给定的指针和摄像机,对一系列交互式游戏对象执行命中测试. 游戏对象被相机剔除,然后坐标被转换到本地相机空间 并用于确定它们是否落在剩余的游戏对象命中区域内. 如果没有匹配的,则返回一个空数组. 这个方法是由InputPlugin.hitTestPointer自动调用的,通常不需要直接调用.
Parameters:
Name Type Attributes Description
pointer Phaser.Input.Pointer 要测试的指针.
gameObjects array 要检查的交互式游戏对象的数组.
camera Phaser.Cameras.Scene2D.Camera 正在测试的摄像机.
output array <optional>
存储结果的数组.如果没有给定,将创建一个新的空数组.
Returns:
在这次命中测试中被命中的游戏对象的数组.
Type
array

pointWithinHitArea(gameObject, x, y) → {boolean}

Since:
  • 3.0.0
检查给定的x和y坐标是否在游戏对象的命中区域内. 该方法假设坐标值已经被转换到游戏对象的空间中. 如果坐标在命中区域内,它们将被设置到游戏对象输入 `localX` 和 `localY` 属性中.
Parameters:
Name Type Description
gameObject Phaser.GameObjects.GameObject 要检查的交互式游戏对象.
x number 命中测试的转换x坐标.
y number 命中测试的平移y坐标.
Returns:
如果坐标在游戏物体命中区域内,则为 `true` ,否则为 `false` .
Type
boolean

pointWithinInteractiveObject(object, x, y) → {boolean}

Since:
  • 3.0.0
检查给定的x和y坐标是否在交互式对象的命中区域内. 该方法假设坐标值已经被转换到交互式对象的空间中. 如果坐标在命中区域内,它们将被设置为交互式对象输入 `localX` 和 `localY` 属性.
Parameters:
Name Type Description
object Phaser.Types.Input.InteractiveObject 要检查的交互式对象.
x number 命中测试的转换x坐标.
y number 命中测试的平移y坐标.
Returns:
如果坐标在游戏物体命中区域内,则为 `true` ,否则为 `false` .
Type
boolean

setDefaultCursor(cursor)

Since:
  • 3.10.0
告诉输入系统设置自定义光标. 该光标将是与游戏画布交互时使用的默认光标. 如果交互式对象也设置了自定义光标,则这是在使用后重置的光标. 允许任何有效的CSS光标值,包括图像文件的路径,即.: ```javascript this.input.setDefaultCursor('url(assets/cursors/sword.cur), pointer'); ``` 请阅读不同浏览器在支持的文件格式和大小方面的差异: https://developer.mozilla.org/en-US/docs/Web/CSS/cursor https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_User_Interface/Using_URL_values_for_the_cursor_property 这取决于您选择一种合适的光标格式,它可以在您需要支持的浏览器范围内工作.
Parameters:
Name Type Description
cursor string 设置默认光标时使用的CSS.

transformPointer(pointer, pageX, pageY, wasMove)

Since:
  • 3.10.0
将指针的页面x和页面y值转换为输入管理器的缩放坐标空间.
Parameters:
Name Type Description
pointer Phaser.Input.Pointer 要转换其值的指针.
pageX number 页面X值.
pageY number 页面Y值.
wasMove boolean 我们是从移动事件还是向上/向下事件转换指针?

updateInputPlugins(type, pointers)

Since:
  • 3.16.0
获取游戏中所有活动输入插件列表的内部方法 并以相反的顺序(从上到下)依次更新它们,以允许 用于DOM顶级事件处理模拟.
Parameters:
Name Type Description
type number 要处理的事件类型.
pointers Array.<Phaser.Input.Pointer> 发生事件的指针数组.