physics_apply_force

使用物理时,不仅需要将重力应用于对象,还需要将力应用于对象。力是导致对象发生速度、方向或形状变化的任何影响,通过从两个xforce/y力分量获取矢量,在 GameMaker 物理世界中定义的力与我们定义的重力相同。需要注意的是,力不是施加在物体的重心上,而是施加在房间的某个点上,它们将改变方向和速度以及扭矩(旋转),这取决于在物体上工作的任何其他力(如重力)。下面是一个有助于说明的示例图像:

Apply physics force illustration在上面的示例中,底部的弹簧对象在球对象上创建了一个力,使球对象沿不同的方向移动。精确力由我们从分量 xforce/yforce 相对于 xpos/ypos 坐标得到的矢量定义-这简单地意味着力被计算为从 xpos/ypos 到 xforce/yforce 的距离,单位为牛顿(牛顿被定义为以每秒平方米的速率加速一公斤质量所需的净力量),并且方向是我们从 xpos/ypos 到 xforce/yforce 的角度。类似上述的碰撞代码将在弹簧对象的碰撞事件中出现,看起来类似于下面示例中提供的代码。

注意:物理世界使用仪表进行所有计算,每米像素的比率在房间编辑器中定义或使用 physics_world_create()

 

语法:

physics_apply_force(xpos, ypos, xforce, yforce)

参数类型描述
xposReal将应用力的房间中的 X 坐标
yposReal将应用力的房间中的 Y 坐标
xforceReal力矢量的 X 分量
yforceReal力矢量的 Y 分量

 

返回:

N/A

 

例子:

with (other)
{
    physics_apply_force(x, y, 0, -30);
}

上述代码将以 30 牛顿的力和一个方向将代码应用于碰撞中的 other 对象。