Game Maker Language リファレンス > 組み込み関数 用途別 > 物理エンジン > physics_apply_impulse()
GameMaker Studio 2の物理演算を使用して、オブジェクトに力と重力を適用できるだけでなく、インパルスを適用することもできます。 これは力とは少し異なります。力を加えるとすぐに速度に影響し、特にインパルスを適用するために選択した点が中心と整列していない場合は、オブジェクトのトルク(または「スピン」)に影響を与える可能性があります。 重心(注:重心は必ずしも原点と同じではありません!)。 これがイラストです:
ご覧のとおり、プレーヤーがボールをクリックしたことで、右上に移動し、回転しながらボールを動かすようになりました。 正確なインパルスは、xpos / ypos座標に関連するコンポーネントximpulse / yimpulseから取得するベクトルによって定義されます。つまり、インパルスは、xpos / yposからximpulse / yimpulseまでの距離(ニュートン)と方向として計算されます。 xpos / yposからximpulse / yimpulseまでの角度です。
physics_apply_impulse(xpos, ypos, ximpulse, yimpulse)
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)); } }
上記のコードは、左ボタンが押されたときにマウスの位置にあるインスタンスにランダムなベクトルでインパルスを適用します。