ArcadePhysics

.Physics.Arcade. ArcadePhysics

街机物理插件属于场景,设置和管理场景的物理模拟. 它还包含一些移动和旋转街机物理物体的有用方法. 你可以在一个场景中使用. 街机物理使用碰撞分辨和分离的投影方法.虽然它又快又合适 对于 `arcade` 风格的游戏,当多个对象靠得很近或相互靠在一起时,它缺乏稳定性. 阻止两个物体穿透的分离可能会对不同的物体产生新的穿透.《如果你》 需要高水平的稳定性,请考虑使用替代物理系统,如Matter.js.

Constructor

new ArcadePhysics(scene)

Since:
  • 3.0.0
Parameters:
Name Type Description
scene Phaser.Scene 该插件所属的场景.

Members

add :Phaser.Physics.Arcade.Factory

Since:
  • 3.0.0
一个持有街机物理工厂方法的对象.
Type:

config :Phaser.Types.Physics.Arcade.ArcadeWorldConfig

Since:
  • 3.0.0
配置对象. `physics.arcade`联盟.*` 游戏配置和场景图对象的属性.
Type:

scene :Phaser.Scene

Since:
  • 3.0.0
该插件所属的场景.
Type:

systems :Phaser.Scenes.Systems

Since:
  • 3.0.0
场景的系统.
Type:

world :Phaser.Physics.Arcade.World

Since:
  • 3.0.0
物理模拟.
Type:

Methods

accelerateTo(gameObject, x, y, speedopt, xSpeedMaxopt, ySpeedMaxopt) → {number}

Since:
  • 3.0.0
设置游戏对象的加速度x/y属性,使其以给定的速率(以每秒像素的平方为单位)向x/y坐标移动 你必须给出一个最大速度值,超过这个值游戏对象就不能再快了. 注意:游戏对象不会持续追踪目标.如果目标在运输过程中改变了位置,游戏目标将不会改变它的路线. 注意:游戏对象一旦到达目的地坐标就不会停止移动.
Parameters:
Name Type Attributes Default Description
gameObject Phaser.GameObjects.GameObject 任何有街机物理身体的游戏物体.
x number 要加速的x坐标.
y number 要加速的y坐标.
speed number <optional>
60 加速度(速度的变化)以每秒像素的平方表示.
xSpeedMax number <optional>
500 游戏对象可以达到的最大x速度.
ySpeedMax number <optional>
500 游戏对象可以达到的最大y速度.
Returns:
为了匹配新的速度,对象在视觉上应该设置的角度(以弧度为单位).
Type
number

accelerateToObject(gameObject, destination, speedopt, xSpeedMaxopt, ySpeedMaxopt) → {number}

Since:
  • 3.0.0
设置游戏对象的加速度x/y属性,使其以给定的速率(以每秒像素的平方为单位)向x/y坐标移动 你必须给出一个最大速度值,超过这个值游戏对象就不能再快了. 注意:游戏对象不会持续追踪目标.如果目标在运输过程中改变了位置,游戏目标将不会改变它的路线. 注意:游戏对象一旦到达目的地坐标就不会停止移动.
Parameters:
Name Type Attributes Default Description
gameObject Phaser.GameObjects.GameObject 任何有街机物理身体的游戏物体.
destination Phaser.GameObjects.GameObject 要移动的游戏对象.可以是任何对象,但必须具有可见的x/y属性.
speed number <optional>
60 加速度(速度的变化)以每秒像素的平方表示.
xSpeedMax number <optional>
500 游戏对象可以达到的最大x速度.
ySpeedMax number <optional>
500 游戏对象可以达到的最大y速度.
Returns:
为了匹配新的速度,对象在视觉上应该设置的角度(以弧度为单位).
Type
number

closest(source, targetsopt) → (nullable) {Phaser.Physics.Arcade.Body|Phaser.Physics.Arcade.StaticBody|Phaser.GameObjects.GameObject}

Since:
  • 3.0.0
查找最靠近源点或对象的身体或游戏对象. 如果传递了一个 `targets` 参数,此方法将找到最接近的参数. 目标可以是街机物理游戏物体,动态物体或静态物体. 如果没有传递 `targets` 参数,此方法将查找最近的动态实体. 如果两个或多个目标与源点的距离完全相同,则只有第一个目标 被返回.
Parameters:
Name Type Attributes Description
source any 任何具有公共属性的对象,如游戏对象或几何对象.
targets Array.<Phaser.Physics.Arcade.Body> | Array.<Phaser.Physics.Arcade.StaticBody> | Array.<Phaser.GameObjects.GameObject> <optional>
目标.
Returns:
离给定源点最近的目标.
Type
Phaser.Physics.Arcade.Body | Phaser.Physics.Arcade.StaticBody | Phaser.GameObjects.GameObject

collide(object1, object2opt, collideCallbackopt, processCallbackopt, callbackContextopt) → {boolean}

Since:
  • 3.0.0
See:
在给定的两个物理启用对象之间执行碰撞检查和分离,这两个对象可以是单个的 游戏对象,游戏对象阵列,物理组,物理组阵列或正常组. 如果您不需要分隔,请改用#overlap. 如果通过了两个组或数组,其中一个组或数组的每个成员将被另一个组或数组的每个成员测试. 如果**只有* *一个组通过(作为 `object 1` ),该组的每个成员将与其他成员碰撞. 如果只传递了一个数组,则迭代该数组,并对其中的每个元素进行测试. 可以提供两个回调.如果发生碰撞并且两者发生碰撞,则调用`collideCallback` 对象被传递给它. 街机物理使用碰撞分辨和分离的投影方法.虽然它又快又合适 对于 `arcade` 风格的游戏,当多个对象靠得很近或相互靠在一起时,它缺乏稳定性. 阻止两个物体穿透的分离可能会对不同的物体产生新的穿透.《如果你》 需要高水平的稳定性,请考虑使用替代物理系统,如Matter.js.
Parameters:
Name Type Attributes Description
object1 Phaser.Types.Physics.Arcade.ArcadeColliderType 要检查的第一个对象或对象数组.
object2 Phaser.Types.Physics.Arcade.ArcadeColliderType <optional>
要检查的第二个对象或对象数组,或 `undefined` .
collideCallback ArcadePhysicsCallback <optional>
一个可选的回调函数,在对象碰撞时调用.
processCallback ArcadePhysicsCallback <optional>
一个可选的回调函数,允许您在两个对象碰撞时对它们执行额外的检查.如果设置了这个选项,那么只有当这个回调返回 `true` 时,才会调用 `collideCallback` .
callbackContext * <optional>
运行回调的上下文.
Returns:
如果任何重叠的游戏对象被分开,则为真,否则为假.
Type
boolean

collideTiles(sprite, tiles, collideCallbackopt, processCallbackopt, callbackContextopt) → {boolean}

Since:
  • 3.17.0
这种高级方法专门用于测试单个子画面和平铺对象数组之间的冲突. 你通常应该使用 `conflict` 方法,用一个Sprite vs.一个波浪图层,就像这样 瓷砖过滤和剔除为你,以及处理有趣的人脸碰撞自动. 这种方法是为那些想要检查与层中特定图块的碰撞的人提供的,而不 必须在有问题的瓷砖上设置任何碰撞属性.这允许您执行快速动态碰撞 在小块瓷砖上.因此,对于给定给该方法的瓦片阵列不进行剔除或检查, 在将它们传递给这个方法之前,应该对它们进行筛选. 重要提示:此方法的使用跳过了Tilemap Layers使用的 `interesting faces` 系统.这意味着如果你有 比方说一排或一列瓷砖,当你跳进或走过它们时,可能会卡在瓷砖的边缘 跳过有趣的面计算.然而,对于速射小碰撞设置测试 动态地图,这种方法可以证明非常有用.
Parameters:
Name Type Attributes Description
sprite Phaser.GameObjects.GameObject 第一个检查碰撞的对象.
tiles Array.<Phaser.Tilemaps.Tile> 要检查碰撞的图块数组.
collideCallback ArcadePhysicsCallback <optional>
一个可选的回调函数,在对象碰撞时调用.
processCallback ArcadePhysicsCallback <optional>
一个可选的回调函数,允许您在两个对象碰撞时对它们执行额外的检查.如果设置了这个选项,那么只有当这个回调返回 `true` 时,才会调用 `collideCallback` .
callbackContext any <optional>
运行回调的上下文.
Fires:
Returns:
如果任何对象重叠,则为True(带 `zover Ponly` );如果任何重叠的对象被分开,则为true.
Type
boolean

destroy()

Since:
  • 3.0.0
拥有这个插件的场景正在被破坏. 我们需要关闭并删除所有外部引用.

disableUpdate()

Since:
  • 3.50.0
导致每次场景更新时自动调用 `World.update` 发出和 `UPDATE` 事件. 如果你想以你自己的速度或者从你自己的速度运行世界更新 组件,那么您应该调用此方法来禁用内置链接, 然后相应地调用 `World.update(delta,time)` . 请注意,当场景 发出 `POST_UPDATE` 事件,而不考虑此设置.

enableUpdate()

Since:
  • 3.50.0
导致每次场景更新时自动调用 发出和 `UPDATE` 事件.这是默认设置,因此只需要 如果您特别禁用了它,请拨打电话.

furthest(source, targetsopt) → (nullable) {Phaser.Physics.Arcade.Body|Phaser.Physics.Arcade.StaticBody|Phaser.GameObjects.GameObject}

Since:
  • 3.0.0
查找距离源点或对象最远的身体或游戏对象. 如果传递了一个 `targets` 参数,此方法将找到其中最远的一个. 目标可以是街机物理游戏物体,动态物体或静态物体. 如果没有传递 `targets` 参数,此方法将找到最远的动态实体. 如果两个或多个目标与源点的距离完全相同,则只有第一个目标 被返回.
Parameters:
Name Type Attributes Description
source any 任何具有公共属性的对象,如游戏对象或几何对象.
targets Array.<Phaser.Physics.Arcade.Body> | Array.<Phaser.Physics.Arcade.StaticBody> | Array.<Phaser.GameObjects.GameObject> <optional>
目标.
Returns:
离给定源点最远的目标.
Type
Phaser.Physics.Arcade.Body | Phaser.Physics.Arcade.StaticBody | Phaser.GameObjects.GameObject

getConfig() → {Phaser.Types.Physics.Arcade.ArcadeWorldConfig}

Since:
  • 3.0.0
为当前场景创建物理配置.
Returns:
物理配置.
Type
Phaser.Types.Physics.Arcade.ArcadeWorldConfig

moveTo(gameObject, x, y, speedopt, maxTimeopt) → {number}

Since:
  • 3.0.0
以稳定的速度向x/y坐标移动给定的显示对象. 如果你指定一个最大时间,那么它会调整速度(覆盖你设置的时间),这样它会在几秒钟内到达目的地. 由于浏览器计时器的工作方式,计时是近似的.允许±50毫秒的偏差. 注意:显示对象不会持续跟踪目标.如果目标在运输过程中改变位置,显示对象将不会修改其路线. 注意:一旦显示对象到达目的地坐标,它不会停止移动. 注意:不考虑加速度,最大速度或阻力(如果你设置阻力或加速度太高,这个物体可能根本不会移动)
Parameters:
Name Type Attributes Default Description
gameObject Phaser.GameObjects.GameObject 任何有街机物理身体的游戏物体.
x number 要向其移动的x坐标.
y number 要向其移动的y坐标.
speed number <optional>
60 它将移动的速度,以像素/秒为单位(默认为60像素/秒)
maxTime number <optional>
0 以毫秒为单位给出的时间(1000 = 1秒).如果设置了速度,则调整速度,使物体在给定的毫秒数内到达目的地.
Returns:
为了匹配新的速度,对象在视觉上应该设置的角度(以弧度为单位).
Type
number

moveToObject(gameObject, destination, speedopt, maxTimeopt) → {number}

Since:
  • 3.0.0
以稳定的速度向目标对象移动给定的显示对象. 如果您指定一个最大时间,那么它将调整速度(覆盖您设置的),以便在该秒数内到达目的地. 由于浏览器计时器的工作方式,计时是近似的.允许±50毫秒的偏差. 注意:显示对象不会持续跟踪目标.如果目标在运输过程中改变位置,显示对象将不会修改其路线. 注意:一旦显示对象到达目的地坐标,它不会停止移动. 注意:不考虑加速度,最大速度或阻力(如果你设置阻力或加速度太高,这个物体可能根本不会移动)
Parameters:
Name Type Attributes Default Description
gameObject Phaser.GameObjects.GameObject 任何有街机物理身体的游戏物体.
destination object 任何具有公共属性的对象,如游戏对象或几何对象.
speed number <optional>
60 它将移动的速度,以像素/秒为单位(默认为60像素/秒)
maxTime number <optional>
0 以毫秒为单位给出的时间(1000 = 1秒).如果设置了速度,则调整速度,使物体在给定的毫秒数内到达目的地.
Returns:
为了匹配新的速度,对象在视觉上应该设置的角度(以弧度为单位).
Type
number

overlap(object1, object2opt, collideCallbackopt, processCallbackopt, callbackContextopt) → {boolean}

Since:
  • 3.0.0
See:
测试游戏对象是否重叠.参见Phaser.Physics.Arcade.World#overlap
Parameters: