Game Maker Language リファレンス > 組み込み関数 用途別 > 物理エンジン > physics_apply_local_force()
物理学の世界で力を使用する別の方法は、インスタンスにローカルに適用することです。 これが意味するのは、力の強さと方向は、ゲームルームや物理学の世界での方向や回転を考慮せずに、インスタンスの原点(またはスプライトがない場合は位置)に基づいて計算されるということです。 。 この関数では、力はオブジェクトの重心に適用されるのではなく、インスタンスに相対的なポイントに適用され、作用している他の力に依存しているため、すぐには適用されないことに注意してください。 オブジェクト(重力など)。 この図は、ローカルフォースがどのように機能するかを示しています。
ご覧のとおり、xlocal座標とylocal座標は、常にインスタンスの原点(0,0)と見なされる軸の位置に基づいて計算されるため、オブジェクトが部屋のどこにあっても、xlocalとylocalは常に次のようになります。 同じであること。 次に、力のベクトル成分(xforceおよびyforce)をxlocal / ylocalの位置に対してどこに配置するかを決定する必要があります。 正確な力は、これらの座標に関連してコンポーネントxforce / yforceから取得するベクトルによって定義されます。つまり、力はxlocal / ylocalからxforce / yforceまでの距離(ニュートン)として計算され、方向は角度です。 xlocal / ylocalからxforce / yforceに取得します。 これは少し紛らわしいように思えるかもしれませんが、これがどのように機能するかを確認するには、図を見るだけで済み、複雑な計算を省くことができます。
physics_apply_local_force(xlocal, ylocal, xforce, yforce)
if keyboard_check(vk_right) { physics_apply_local_force(-25, 0, -50, 0); }
上記のコードは、右矢印キーが押されている間、原点を基準にして左から右に50ニュートンのインスタンスに力を適用します。