Game Maker Language リファレンス > 組み込み関数 用途別 > 物理エンジン > physics_apply_local_impulse()
GameMaker Studio 2の物理演算を使用して、オブジェクトに力と重力を適用できるだけでなく、インパルスを適用することもできます。 これは力とは少し異なります。力を加えるとすぐに速度に影響し、特にインパルスを適用するために選択したポイントのベクトルがそうでない場合は、オブジェクトのトルク(または「スピン」)に影響を与える可能性があります。 重心に合わせます(注:重心は必ずしも原点と同じではありません!)。 この関数は、インスタンスにローカルでインパルスを適用します。 これが意味するのは、インパルスの強さと方向は、ゲームルームや物理学の世界での方向や回転を考慮せずに、インスタンスの原点(またはスプライトがない場合は位置)に基づいて計算されるということです。 。 これがイラストです:
ご覧のとおり、画像のカエルは下から衝動を受けて「ジャンプ」します。 正確なインパルスは、xpos / ypos座標に関連するコンポーネントximpulse / yimpulseから取得するベクトルによって定義されます。つまり、インパルスは、xpos / yposからximpulse / yimpulseまでの距離(ニュートン)と方向として計算されます。 xpos / yposからximpulse / yimpulseまでの角度です。
physics_apply_local_impulse(xpos, ypos, ximpulse, yimpulse)
if jump physics_apply_local_impulse(0, 20, 0, 50);
上記のコードは、変数「ジャンプ」がtrueの場合、30ニュートンの力と、インスタンスの原点を基準にして下から上に向かう方向のインパルスを適用します。