physics_apply_impulse

您不仅可以对 GameMaker 中的物理对象施加力和重力,还可以施加脉冲。这与力略有不同,因为当施加力时,它会立即影响速度,并且可能影响对象的扭矩(或旋转),特别是当选择施加脉冲的点与质心不对齐时(注意:质心不一定与原点相同!)。下面是一个例子:

Apply physics impulse illustration正如您可以看到的,球员已经点击了球,这给了它一个移动到右上角的冲动,随着它的移动而旋转。确切的脉冲由我们从与 xpos/ypos 坐标相关的分量 ximpulse/yimpulse 得到的矢量定义-这只是意味着脉冲被计算为从 xpos/ypos 到 ximpulse/yimpulse 的距离,以牛顿为单位,方向是我们从 xpos/ypos 到 ximpulse/yimpulse 的角度。

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

 

语法:

physics_apply_impulse(xpos, ypos, ximpulse, yimpulse)

参数类型描述
xposReal将应用脉冲的房间中的 X 坐标
yposReal将应用脉冲的房间中的 Y 坐标
ximpulseReal脉冲矢量的 X 分量
yimpulseReal脉冲矢量的 Y 分量

 

返回:

N/A

 

例子:

if (mouse_check_button_pressed(mb_left))
{
    with (place_meeting(mouse_x, mouse_y, all))
    {
        physics_apply_impulse(mouse_x, mouse_y, -10 + irandom(20), -10 + irandom(20));
    }
}

按下左键时,上面的代码将向位于鼠标位置的实例应用带有随机向量的脉冲。