跳到主要内容

PhysicsWorld

描述:

  表示游戏中的物理世界的类。

类对象:PhysicsWorld Class

继承自:Node

query

类型: 函数。

描述:

  查询与指定矩形区域相交的所有物理体。

签名:

query: function(self: PhysicsWorld, rect: Rect, handler: function(Body): boolean): boolean

参数:

参数名类型描述
rectRect要查询的矩形区域。
handlerfunction对于查询中找到的每个物理体调用的函数。

返回值:

返回类型描述
boolean查询是否被中断,true 表示已中断,false 表示未中断。

handler的定义:

  • handler的参数:
参数名类型描述
bodyBody查询中找到的物理体。
  • handler的返回值:
返回类型描述
boolean是否继续查询更多物理体,返回 false 继续,true 停止。

raycast

类型: 函数。

描述:

  从起点发射一条射线穿过物理世界并找到与射线相交的物理体。

签名:

raycast: function(self: PhysicsWorld, start: Vec2, stop: Vec2, closest: boolean, handler: function(Body, point: Vec2, normal: Vec2): boolean): boolean

参数:

参数名类型描述
startVec2射线的起点。
stopVec2射线的终点。
closestboolean是否在与射线相交的最近物理体上停止射线投射。将 closest 设置为 true 可以获得更快的射线投射搜索效率。
handlerfunction对于射线投射中找到的每个物理体调用的函数。

返回值:

返回类型描述
boolean射线投射是否被中断,true 表示已中断,false 表示未中断。

handler的定义:

  • handler的参数:
参数名类型描述
bodyBody射线投射中找到的物理体。
pointVec2射线与物理体相交的点。
normalVec2相交点处的法线向量。
  • handler的返回值:
返回类型描述
boolean是否继续投射射线以获得更多物理体,返回 true 停止,false 继续。

setIterations

类型: 函数。

描述:

  设置物理世界做物理模拟计算的速度迭代和位置迭代次数。

签名:

setIterations: function(self: PhysicsWorld, velocityIter: integer, positionIter: integer)

参数:

参数名类型描述
velocityIterinteger要执行的速度迭代次数。
positionIterinteger要执行的位置迭代次数。

setShouldContact

类型: 函数。

描述:

  设置两个物理组是否会彼此碰撞。

签名:

setShouldContact: function(self: PhysicsWorld, groupA: integer, groupB: integer, contact: boolean)

参数:

参数名类型描述
groupAinteger第一个物理对象分组。
groupBinteger第二个物理对象分组。
contactboolean两个组是否应该彼此碰撞。

getShouldContact

类型: 函数。

描述:

  获取两个物理组是否会彼此碰撞。

签名:

getShouldContact: function(self: PhysicsWorld, groupA: integer, groupB: integer): boolean

参数:

参数名类型描述
groupAinteger第一个物理对象分组。
groupBinteger第二个物理对象分组。

返回值:

返回类型描述
boolean两个组是否会彼此碰撞。