physics_apply_local_force

在物理世界中使用力的另一种方法是在本地将其应用于实例。这意味着力的强度和方向是根据实例的原点计算的(如果没有精灵,则为位置),而不考虑它在游戏室或物理世界中可能具有的方向或旋转。需要注意的是,使用此函数,力不会施加到对象的质心,而是施加到相对于实例的某个点,并且它们不会立即施加,因为它们依赖于正在对象上工作的任何其他力(如重力)。本图演示了局部力的工作原理:

Apply local physics force illustration如您所见,xlocal 和 ylocal 坐标是根据轴位置计算的,并且始终将视为实例 (0,0) 的原点,因此无论对象在房间的哪个位置,xlocal 和 ylocal 都将始终相同。然后,必须确定力的矢量分量 (xforce 和 yforce) 相对于 xlocal/ylocal 位置的位置。精确力由我们从分量 xforce/yforce 相对于这些坐标得到的矢量定义-这简单地意味着力被计算为从 xlocal/ylocal 到 xforce/yforce 的牛顿距离,并且方向是我们从 xlocal/ylocal 到 xforce/yforce 的角度。这看起来似乎有点混乱,但是你只需看一下插图就知道它是如何工作的,而且它为你节省了一些复杂的数学知识!

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

 

语法:

physics_apply_local_force(xlocal, ylocal, xforce, yforce)

参数类型描述
xlocalReal相对于施加力的原点的 X 坐标
ylocalReal相对于施加力的原点的 Y 坐标
xforceReal力矢量的 X 分量
yforceReal力矢量的 Y 分量

 

返回:

N/A

 

例子:

if (keyboard_check(vk_right))
{
    physics_apply_local_force(-25, 0, -50, 0);
}

按下右箭头键时,上述代码将从左到右相对于原点施加 50 牛顿的力。