physics_apply_local_impulse

您不仅可以对 GameMaker 中的物理对象施加力和重力,还可以施加脉冲。这与力略有不同,因为当施加力时,它会立即影响速度,并且可能影响对象的扭矩(或旋转),特别是如果选择施加脉冲的点的矢量与质心不对齐(注意:质心不一定与原点相同!)。此函数在本地将脉冲应用于实例。这意味着,脉冲的强度和方向是根据实例的原点(如果没有精灵,则是位置)计算的,而不考虑它在游戏室或物理世界中可能具有的方向或旋转。下面是一个例子:

Apply local physics impulse illustration正如你所看到的,图像中的青蛙从下面得到一个冲动,让它"跳"起来。确切的脉冲由我们从与 xpos/ypos 坐标相关的分量 ximpulse/yimpulse 得到的矢量定义 - 这只是意味着脉冲被计算为从 xpos/ypos 到 ximpulse/yimpulse 的距离,以牛顿为单位,方向是我们从 xpos/ypos 到 ximpulse/yimpulse 的角度。

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

 

语法:

physics_apply_local_impulse(xpos, ypos, ximpulse, yimpulse)

参数类型描述
xposReal相对于将应用脉冲的原点的 X 坐标
yposReal相对于将应用脉冲的原点的 Y 坐标
ximpulseReal脉冲矢量的 X 分量(相对于 xpos 坐标)
yimpulseReal脉冲矢量的 Y 分量(相对于 ypos 坐标)

 

返回:

N/A

 

例子:

if (jump)
{
    physics_apply_local_impulse(0, 20, 0, 50);
}

如果变量 "jump" 为真,则上述代码将以 30 牛顿的力施加脉冲,并且从底部到顶部相对于实例原点的方向。