您不仅可以对 GameMaker 中的物理对象施加力和重力,还可以施加脉冲。这与力略有不同,因为当施加力时,它会立即影响速度,并且可能影响对象的扭矩(或旋转),特别是当选择施加脉冲的点与质心不对齐时(注意:质心不一定与原点相同!)。下面是一个例子:
正如您可以看到的,球员已经点击了球,这给了它一个移动到右上角的冲动,随着它的移动而旋转。确切的脉冲由我们从与 xpos/ypos 坐标相关的分量 ximpulse/yimpulse 得到的矢量定义-这只是意味着脉冲被计算为从 xpos/ypos 到 ximpulse/yimpulse 的距离,以牛顿为单位,方向是我们从 xpos/ypos 到 ximpulse/yimpulse 的角度。
注意:物理世界使用仪表进行所有计算,每米像素的比率在房间编辑器中定义或使用 physics_world_create()。
physics_apply_impulse(xpos, ypos, ximpulse, yimpulse)
参数 | 类型 | 描述 |
---|---|---|
xpos | Real | 将应用脉冲的房间中的 X 坐标 |
ypos | Real | 将应用脉冲的房间中的 Y 坐标 |
ximpulse | Real | 脉冲矢量的 X 分量 |
yimpulse | Real | 脉冲矢量的 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));
}
}
按下左键时,上面的代码将向位于鼠标位置的实例应用带有随机向量的脉冲。