World

.Physics.Arcade. World

街机物理世界. 世界负责创造,管理,碰撞和更新其中的所有物体. 世界的一个实例属于相位器.场景,可通过属性 `physics.world` 访问.

Constructor

new World(scene, config)

Since:
  • 3.0.0
Parameters:
Name Type Description
scene Phaser.Scene 此世界实例所属的场景.
config Phaser.Types.Physics.Arcade.ArcadeWorldConfig 一个街机物理配置对象.

Extends

Members

bodies :Phaser.Structs.Set.<Phaser.Physics.Arcade.Body>

Since:
  • 3.0.0
此模拟中的动态实体.
Type:

bounds :Phaser.Geom.Rectangle

Since:
  • 3.0.0
约束实体的边界.
Type:

checkCollision :Phaser.Types.Physics.Arcade.CheckCollisionObject

Since:
  • 3.0.0
实体可以碰撞的边界边.
Type:

colliders :Phaser.Structs.ProcessQueue.<Phaser.Physics.Arcade.Collider>

Since:
  • 3.0.0
这个模拟的碰撞处理器.
Type:

debugGraphic :Phaser.GameObjects.Graphics

Since:
  • 3.0.0
绘制调试显示的图形对象.
Type:

defaults :Phaser.Types.Physics.Arcade.ArcadeWorldDefaults

Since:
  • 3.0.0
新实体的默认调试显示设置.
Type:

drawDebug :boolean

Since:
  • 3.0.0
Default Value:
  • false
启用调试显示.
Type:
  • boolean

fixedStep :boolean

Since:
  • 3.23.0
Default Value:
  • true
物理应该使用固定的更新时间步长(真)还是同步到渲染帧速率(假)? 此属性的False值禁用fps和TiGet属性.
Type:
  • boolean

forceX :boolean

Since:
  • 3.0.0
Default Value:
  • false
总是先水平分离重叠的几何体,再垂直分离. False(默认值)表示首先在重力较大的轴上分离实体,如果两个轴都不太大,则在垂直轴上分离.
Type:
  • boolean

(readonly) fps :number

Since:
  • 3.10.0
Default Value:
  • 60
每秒要执行的物理步骤数. 该属性是只读的.使用 `setFPS` 方法在运行时修改它.
Type:
  • number

gravity :Phaser.Math.Vector2

Since:
  • 3.0.0
重力导致的物体加速度,单位为每秒像素.
Type:

isPaused :boolean

Since:
  • 3.0.0
Default Value:
  • false
模拟是否随着游戏循环进行.
Type:
  • boolean

maxEntries :number

Since:
  • 3.0.0
Default Value:
  • 16
RTree上每个节点的最大项目数. 如果 `useTree` 是 `false` ,则忽略此选项.如果你有很多尸体 你可能会发现搜索性能通过增加这个值而提高, 以允许每个节点更多的项目和更少的节点划分.
Type:
  • number

OVERLAP_BIAS :number

Since:
  • 3.0.0
Default Value:
  • 4
一个物体的每一步速度的最大绝对差以及它与另一个物体的重叠,这将导致在*每个轴*上的分离. 较大的值有利于分离. 较小的值不支持分离.
Type:
  • number

pendingDestroy :Phaser.Structs.Set.<(Phaser.Physics.Arcade.Body|Phaser.Physics.Arcade.StaticBody)>

Since:
  • 3.1.0
标记为删除的静态实体.
Type:

scene :Phaser.Scene

Since:
  • 3.0.0
此模拟所属的场景.
Type:

staticBodies :Phaser.Structs.Set.<Phaser.Physics.Arcade.StaticBody>

Since:
  • 3.0.0
此模拟中的静态实体.
Type:

staticTree :Phaser.Structs.RTree

Since:
  • 3.0.0
静态物体的空间索引.
Type:

(readonly) stepsLastFrame :number

Since:
  • 3.10.0
最后一帧中发生的步骤数.
Type:
  • number

TILE_BIAS :number

Since:
  • 3.0.0
Default Value:
  • 16
身体与瓷砖重叠的最大绝对值将导致*每个轴*上的分离. 较大的值有利于分离. 较小的值不支持分离. 最佳值可能与图块大小相似.
Type:
  • number

timeScale :number

Since:
  • 3.10.0
Default Value:
  • 1
应用于帧速率的比例因子. - 1.0 = 正常速度 - 2.0 = 中速 - 0.5 = 双倍速度
Type:
  • number

tree :Phaser.Structs.RTree

Since:
  • 3.0.0
动态体的空间索引.
Type:

treeMinMax :Phaser.Types.Physics.Arcade.ArcadeWorldTreeMinMax

Since:
  • 3.0.0
树搜索的循环输入.
Type:

useTree :boolean

Since:
  • 3.10.0
Default Value:
  • true
这个街机物理世界应该使用动态物体的RTree吗? RTree是一种对世界上所有物体进行空间排序的快速方法. 但是,在某些限制条件下,清除尸体并将其插入 树每帧变得比它提供的搜索速度增益更昂贵. 如果你的世界里有大量充满活力的物体,那么最好 在物理配置中将此属性设置为 `false` ,禁用RTree. 它能处理的数量取决于浏览器和设备,但这是保守的估计 在禁用它之前,大约5000具尸体的数量应该是最大的. 这仅适用于动态实体.静态物体总是被保存在一个自由空间里, 因为它们不必每帧都被清除,所以您可以从 大规模搜索一直在加速.
Type:
  • boolean

Methods

add(body) → {Phaser.Physics.Arcade.Body|Phaser.Physics.Arcade.StaticBody}

Since:
  • 3.10.0
将现有的街机物理实体或静态实体添加到模拟中. 正文被启用并添加到本地搜索树中.
Parameters:
Name Type Description
body Phaser.Physics.Arcade.Body | Phaser.Physics.Arcade.StaticBody 要添加到模拟中的几何体.
Returns:
添加到模拟中的几何体.
Type
Phaser.Physics.Arcade.Body | Phaser.Physics.Arcade.StaticBody

addCollider(object1, object2, collideCallbackopt, processCallbackopt, callbackContextopt) → {Phaser.Physics.Arcade.Collider}

Since:
  • 3.0.0
See:
创建一个新的碰撞器对象,并将其添加到仿真中. 碰撞器是一种在两个物体之间自动执行碰撞检查的方法, 调用碰撞并处理回调(如果发生了). 对撞机是作为世界更新的一部分运行的,在所有的物体都更新之后. 通过创建一个你不需要的碰撞器,然后在你的 `update` 循环中调用 `World .对撞器`, 因为它会自动为你处理.
Parameters:
Name Type Attributes Description
object1 Phaser.Types.Physics.Arcade.ArcadeColliderType 第一个检查碰撞的对象.
object2 Phaser.Types.Physics.Arcade.ArcadeColliderType 要检查碰撞的第二个对象.
collideCallback ArcadePhysicsCallback <optional>
当两个对象冲突时要调用的回调.
processCallback ArcadePhysicsCallback <optional>
当两个对象冲突时要调用的回调.必须返回一个布尔值.
callbackContext * <optional>
调用回调的范围.
Returns:
创建的碰撞器.
Type
Phaser.Physics.Arcade.Collider

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

addOverlap(object1, object2, collideCallbackopt, processCallbackopt, callbackContextopt) → {Phaser.Physics.Arcade.Collider}

Since:
  • 3.0.0
创建新的重叠碰撞器对象,并将其添加到模拟中. 碰撞器是一种自动执行两个对象之间重叠检查的方法, 调用碰撞并处理回调(如果发生了). 对撞机是作为世界更新的一部分运行的,在所有的物体都更新之后. 通过创建一个碰撞器,你不需要在你的 `update` 循环中调用 `World.overlap` , 因为它会自动为你处理.
Parameters:
Name Type Attributes Description
object1 Phaser.Types.Physics.Arcade.ArcadeColliderType 要检查重叠的第一个对象.
object2 Phaser.Types.Physics.Arcade.ArcadeColliderType 要检查重叠的第二个对象.
collideCallback ArcadePhysicsCallback <optional>
当两个对象重叠时要调用的回调.
processCallback ArcadePhysicsCallback <optional>
当两个对象重叠时要调用的回调.必须返回一个布尔值.
callbackContext * <optional>
调用回调的范围.
Returns:
创建的碰撞器.
Type
Phaser.Physics.Arcade.Collider

circleBodyIntersects(circle, body) → {boolean}

Since:
  • 3.0.0
测试一个圆形实体是否与另一个实体相交.
Parameters:
Name Type Description
circle Phaser.Physics.Arcade.Body 要测试的圆形主体.
body Phaser.Physics.Arcade.Body 要测试的矩形主体.
Returns:
如果两个物体相交则为真,否则为假.
Type
boolean

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

Since:
  • 3.0.0
在给定的两个物理启用对象之间执行碰撞检查和分离,这两个对象可以是单个的 游戏对象,游戏对象阵列,物理组,物理组阵列或正常组. 如果你不需要分离,那么使用Phaser.Physics.Arcade.World#overlap改为. 如果通过了两个组或数组,其中一个组或数组的每个成员将被另一个组或数组的每个成员测试. 如果**只有* *一个组通过(作为 `object 1` ),该组的每个成员将与其他成员碰撞. 如果只传递了一个数组,则迭代该数组,并对其中的每个元素进行测试. 可以提供两个回调;他们接收碰撞的游戏对象作为参数. 如果检测到重叠,首先调用 `processCallback` .它可以通过返回false来取消冲突. 接下来,对象被分离,并调用 `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 any <optional>
运行回调的上下文.
Returns:
如果任何重叠的游戏对象被分开,则为 `true` ,否则为 `false` .
Type
boolean

collideSpriteVsTilemapLayer(sprite, tilemapLayer, collideCallbackopt, processCallbackopt, callbackContextopt, overlapOnlyopt) → {boolean}

Since:
  • 3.0.0
Sprite vs的内部处理程序.Tilemap冲突. 请使用移相器.物理.街机.世界#改为碰撞.
Parameters:
Name Type Attributes Description
sprite Phaser.GameObjects.GameObject 第一个检查碰撞的对象.
tilemapLayer Phaser.Tilemaps.TilemapLayer 要检查碰撞的第二个对象.
collideCallback ArcadePhysicsCallback <optional>
一个可选的回调函数,在对象碰撞时调用.
processCallback ArcadePhysicsCallback