Pointer

.Input. Pointer

指针对象封装了相位器中的鼠标和触摸输入. 默认情况下,相位器会为你的游戏创建2个指针.如果您需要更多,即.对于多点触控 游戏,然后使用 `InputPlugin.addPointer` 方法这样做,而不是直接实例化这个类, 否则它不会被输入系统管理. 可以通过 `InputPlugin.activePointer` 引用当前活动指针.您也可以使用属性 `InputPlugin.pointer1` 到 `pointer10` ,为您在游戏中启用的每个指针. 该对象的属性由输入插件在处理过程中设置.该对象随后被全部发送 输入插件发出的与输入相关的事件,因此您可以在 回调.

Constructor

new Pointer(manager, id)

Since:
  • 3.0.0
Parameters:
Name Type Description
manager Phaser.Input.InputManager 对输入管理器的引用.
id number 该指针的内部标识.

Members

active :boolean

Since:
  • 3.10.0
活动指针是当前在显示器上按下的指针. 老鼠总是被认为是活跃的.
Type:
  • boolean

(readonly) angle :number

Since:
  • 3.16.0
指针当前移动的角度,以弧度为单位,基于其先前和当前位置. 角度基于面向当前位置的旧位置. 无论任何按钮状态,只要指针移动,此属性就会更新.换句话说, 它仅仅根据移动而改变——不需要先按下按钮.
Type:
  • number

(readonly) button :number

Since:
  • 3.18.0
Default Value:
  • 0
一个只读属性,指示指针上哪个按钮被按下或释放 在最近的事件中.仅在 `up` 和 `down` 事件期间设置. 在触摸设备上,该值始终为0. 用户可以更改其定点设备上的按钮配置,以便如果事件的按钮属性 是零,它可能不是由物理上左边的按钮引起的——大部分在定点设备上; 但是,它应该表现得就像在标准按钮布局中单击了左按钮一样.
Type:
  • number

buttons :number

Since:
  • 3.0.0
Default Value:
  • 0
0: No button or un-initialized 1: Left button 2: Right button 4: Wheel button or middle button 8: 4th button (通常是`浏览器后退`按钮) 16: 5th button (通常是`浏览器前进`按钮) 对于配置为左手使用的鼠标,按钮操作是相反的. 在这种情况下,值是从右向左读取的.
Type:
  • number

camera :Phaser.Cameras.Scene2D.Camera

Since:
  • 3.0.0
Default Value:
  • null
指针上次更新时与之交互的摄像机. 指针一次只能与一台摄像机交互,这将是最顶层的摄像机 在列表中,多个摄像机应放置在彼此的顶部.
Type:

deltaX :number

Since:
  • 3.18.0
Default Value:
  • 0
由于用户移动鼠标滚轮或类似输入设备而产生的水平滚动量.
Type:
  • number

deltaY :number

Since:
  • 3.18.0
Default Value:
  • 0
由于用户移动鼠标滚轮或类似输入设备而产生的垂直滚动量. 如果用户向上滚动,该值通常小于0,如果向下滚动,该值通常大于0.
Type:
  • number

deltaZ :number

Since:
  • 3.18.0
Default Value:
  • 0
由于用户移动鼠标滚轮或类似输入设备而产生的z轴滚动量.
Type:
  • number

(readonly) distance :number

Since:
  • 3.16.0
指针移动的距离,基于其先前和当前位置. 根据 `motionFactor` 属性,该值在每一帧中被平滑. 无论任何按钮状态,只要指针移动,此属性就会更新.换句话说, 它仅仅根据移动而改变——不需要先按下按钮. 如果您需要按下主按钮后行驶的总距离, 然后使用 `Pointer.getDistance` 方法.
Type:
  • number

(readonly) downElement :any

Since:
  • 3.16.0
指针被按下的DOM元素,取自DOM事件. 在默认设置中,这将是Phaser渲染到的画布,或窗口元素.
Type:
  • any

downTime :number

Since:
  • 3.0.0
Default Value:
  • 0
按下第一个按钮或触摸输入时的事件时间戳.用于拖动对象.
Type:
  • number

downX :number

Since:
  • 3.0.0
Default Value:
  • 0
按下按钮1(左按钮)或触摸时指针的x坐标,用于拖动对象.
Type:
  • number

downY :number

Since:
  • 3.0.0
Default Value:
  • 0
当按下按钮1(左按钮)或触摸时,指针的y坐标,用于拖动对象.
Type:
  • number

event :TouchEvent|MouseEvent

Since:
  • 3.0.0
该指针最近处理的本机DOM事件.
Type:
  • TouchEvent | MouseEvent

(readonly) id :number

Since:
  • 3.0.0
该指针的内部标识.
Type:
  • number

identifier :number

Since:
  • 3.10.0
当这个指针启动时,由DOM事件设置的指针的标识符属性.
Type:
  • number

isDown :boolean

Since:
  • 3.0.0
Default Value:
  • false
这个指针上的任意按钮被认为是向下的吗?
Type:
  • boolean

(readonly) locked :boolean

Since:
  • 3.19.0
这个指针被锁定了吗? 只有鼠标指针可以被锁定,并且只有在通过 浏览器指针锁定应用编程接口. 您可以通过调用 `pointerdown` 或 `pointerup` 事件处理程序.
Type:
  • boolean

manager :Phaser.Input.InputManager

Since:
  • 3.0.0
对输入管理器的引用.
Type:

motionFactor :number

Since:
  • 3.16.0
Default Value:
  • 0.2
应用于每帧运动平滑的因子. 该值被传递给用于计算速度的平滑步进插值, 指针的角度和距离.它应用于每一帧,直到中点达到当前 指针的位置.0.2提供了一个很好的平均值,但是如果您需要 更新更快,并且在高性能环境中工作.切勿将此值设置为 零.
Type:
  • number

movementX :number

Since:
  • 3.0.0
Default Value:
  • 0
如果鼠标被锁定,指针自上一帧以来的水平相对移动(以像素为单位).
Type:
  • number

movementY :number

Since:
  • 3.0.0
Default Value:
  • 0
如果鼠标被锁定,指针自上一帧以来的垂直相对移动(以像素为单位).
Type:
  • number

moveTime :number

Since:
  • 3.0.0
Default Value:
  • 0
该指针最近移动的时间(不考虑其按钮的状态,如果有的话)
Type:
  • number

pointerId :number

Since:
  • 3.10.0
当这个指针启动时,由DOM事件设置的指针的指针标识属性. 浏览器可以并且将会回收此值.
Type:
  • number

(readonly) position :Phaser.Math.Vector2

Since:
  • 3.0.0
指针在屏幕空间中的位置.
Type:

(readonly) prevPosition :Phaser.Math.Vector2

Since:
  • 3.11.0
指针在屏幕空间中的上一个位置. 在InputManager.transformPointer调用期间,旧的x和y值存储在这里. 使用属性 `velocity` , `angle` 和 `distance` 创建您自己的手势识别.
Type:

primaryDown :boolean

Since:
  • 3.0.0
Default Value:
  • false
主按钮按下了吗?(通常是按钮0,鼠标左键)
Type:
  • boolean

smoothFactor :number

Since:
  • 3.16.0
Default Value:
  • 0
应用于指针位置的平滑因子. 由于它们的性质,指针位置本身就有噪声.虽然这对于很多游戏来说没问题,但如果你需要更干净的位置 然后,您可以设置该值,以便在记录位置时对其应用自动平滑. 默认值零表示 `no smoothing` . 设置一个小值,如0.2,以在位置之间应用平均平滑级别.你可以通过改变它来做到 值,或者在游戏配置中设置 `input.smoothFactor` 属性. 只有当指针移动时,位置才会变得平滑.如果该指针上的主按钮进入向上或向下状态,则该位置 总是精确的,而不是平滑的.
Type:
  • number

(readonly) time :number

Since:
  • 3.16.0
该指针最近被DOM事件更新的时间. 这直接来自 `event.timeStamp` 属性. 如果还没有事件发生,它将返回零.
Type:
  • number

(readonly) upElement :any

Since:
  • 3.16.0
指针被释放的DOM元素,取自DOM事件. 在默认设置中,这将是Phaser渲染到的画布,或窗口元素.
Type:
  • any

upTime :number

Since:
  • 3.0.0
Default Value:
  • 0
释放最后一个按钮或触摸输入时的事件时间戳.用于拖动对象.
Type:
  • number

upX :number

Since:
  • 3.0.0
Default Value:
  • 0
释放按钮1(左按钮)或触摸时指针的x坐标,用于拖动对象.
Type:
  • number

upY :number

Since:
  • 3.0.0
Default Value:
  • 0
释放按钮1(左按钮)或触摸时指针的Y坐标,用于拖动对象.
Type:
  • number

(readonly) velocity :Phaser.Math.Vector2

Since:
  • 3.16.0
指针的当前速度,基于其当前和以前的位置. 根据 `motionFactor` 属性,该值在每一帧中被平滑. 无论任何按钮状态,只要指针移动,此属性就会更新.换句话说, 它仅仅根据移动而改变——不需要先按下按钮.
Type:

wasCanceled :boolean

Since:
  • 3.15.0
Default Value:
  • false
此指针是否被触摸取消事件取消? 注:`canceled`是`canceled`的美式英语拼写.请不要提交修正它的PRs!
Type:
  • boolean

wasTouch :boolean

Since:
  • 3.0.0
Default Value:
  • false
之前的输入事件是来自触摸输入(真)还是鼠标?(错误)
Type:
  • boolean

worldX :number

Since:
  • 3.10.0
Default Value:
  • 0
该指针的x位置,转换为与之交互的最近摄像机的坐标空间. 如果您希望在输入事件处理程序之外使用这个值,那么您应该首先通过调用 `Pointer.updateWorldPoint` 方法.
Type:
  • number

worldY :number

Since:
  • 3.10.0
Default Value:
  • 0
该指针的y位置,转换为与之交互的最近摄像机的坐标空间. 如果您希望在输入事件处理程序之外使用这个值,那么您应该首先通过调用 `Pointer.updateWorldPoint` 方法.
Type:
  • number

x :number

Since:
  • 3.0.0
该指针的x位置. 该值在屏幕空间中. 请参见 `worldX` 获取相机转换后的位置.
Type:
  • number

y :number

Since:
  • 3.0.0
该指针的y位置. 该值在屏幕空间中. 请参见 `worldY` 获取相机转换后的位置.
Type:
  • number

Methods

backButtonDown() → {boolean}

Since:
  • 3.0.0
检查是否按下了指针上的后退按钮.
Returns:
`true` 如果按下后退按钮.
Type
boolean

backButtonReleased() → {boolean}

Since:
  • 3.18.0
检查返回按钮是否刚刚在此指针上释放.
Returns:
`true` 如果后退按钮刚刚释放.
Type
boolean

destroy()

Since:
  • 3.0.0
销毁此指针实例并重置其外部引用.

forwardButtonDown() → {boolean}

Since:
  • 3.0.0
检查指针上的前进按钮是否被按下.
Returns:
`true` 如果按下前进按钮.
Type
boolean

forwardButtonReleased() → {boolean}

Since:
  • 3.18.0
检查指针上的前进按钮是否刚刚松开.
Returns:
`true` 如果前进按钮刚刚释放.
Type
boolean

getAngle() → {number}

Since:
  • 3.16.0
如果指针在调用此方法时有一个按钮被按下,它将返回 指针的`downX`和`downY`值与当前位置之间的角度. 如果没有按下任何按钮,它将根据位置返回最后记录的角度 指针在按钮被释放的时候. 角度基于面向当前位置的旧位置. 如果你想得到当前的角度,基于指针的速度,那么 请参见 `z pointer.angle` 属性.
Returns:
以弧度表示的指针坐标之间的角度.
Type
number

getDistance() → {number}

Since:
  • 3.13.0
如果指针在调用此方法时有一个按钮被按下,它将返回 指针的 `downX` 和 `downY` 值与当前位置之间的距离. 如果没有按下任何按钮,它将根据位置返回最后记录的距离 指针在按钮被释放的时候. 如果你想根据指针的速度得到当前行进的距离, 然后查看 `pointer.distance`属性.
Returns:
指针移动的距离.
Type
number

getDistanceX() → {number}

Since:
  • 3.16.0
如果指针在调用此方法时有一个按钮被按下,它将返回 指针的 `downX` 和 `downY` 值与当前位置之间的水平距离. 如果没有按下任何按钮,它将根据位置返回最后记录的水平距离 指针在按钮被释放的时候.
Returns:
指针移动的水平距离.
Type
number

getDistanceY() → {number}

Since:
  • 3.16.0
如果指针在调用此方法时有一个按钮被按下,它将返回 指针的 `downX` 和 `downY` 值与当前位置之间的垂直距离. 如果没有按下任何按钮,它将根据位置返回最后记录的垂直距离 指针在按钮被释放的时候.
Returns:
指针移动的垂直距离.
Type
number

getDuration() → {number}

Since:
  • 3.16.0
如果指针在调用此方法时有一个按钮被按下,它将返回 按钮被按下后的持续时间. 如果没有按下任何按钮,它将根据时间返回最后记录的持续时间 指针上的最后一个按钮被释放.
Returns:
指针被按住的持续时间(以毫秒为单位).
Type
number

getInterpolatedPosition(stepsopt, outopt) → {array}

Since:
  • 3.11.0
获取前一个指针位置和当前指针位置,然后在 两个.数组将被填充到 `steps` 参数的大小. ```javaScript var points = pointer.getInterpolatedPosition(4); // points[0] = { x: 0, y: 0 } // points[1] = { x: 2, y: 1 } // points[2] = { x: 3, y: 2 } // points[3] = { x: 6, y: 3 } ``` 如果您需要获得前一指针位置和当前指针位置之间的平滑值,请使用此选项.DOM指针 事件通常会比主浏览器循环更快地触发,这将有助于您避免janky移动 尤其是当你有一个对象跟随指针时. 请注意,如果您提供了一个输出数组,它将只填充所提供的步骤数. 它不会清除任何可能存在于步骤计数范围之外的先前数据. 在内部,它使用平滑步长插值计算.
Parameters:
Name Type Attributes Default Description
steps number <optional>
10 要使用的插值步数.
out array <optional>
存储结果的数组.如果没有提供,将创建一个新的.
Returns:
插值数组.
Type
array

leftButtonDown()