Game Maker Language リファレンス > 組み込み関数 用途別 > 物理エンジン > physics_world_gravity()
すべての物理関数と同様に、physics_world_gravity() は、ルームエディターで、または physics_world_create() を使用して定義された物理ワールドがある場合にのみ、インスタンスで機能します。 次に、物理学の世界の (0, 0) 定義点を使用して、xg および yg 入力から計算されたベクトルに基づいて重力の方向と強度を計算します。 ここに説明するためのいくつかの画像があります...
ご覧のとおり、xg、yg座標は、物理学の世界で定義されている (0, 0) の位置を基準にしており、重力自体はこれら2つのコンポーネントのベクトルとして計算されます。 したがって、デフォルト値の (0,10) は、重力方向が下向き(270度)で、加速度が10メートル/秒の2乗になります。 メートル/秒の2乗に注意してください! すべての物理関数と同様に、重力はメートルを基本測定値として使用して計算されるため、ここでは physics_world_create() 関数で設定したピクセルからメートルへのスケールが重要です。 重力もオブジェクトに累積されます(ただし、正確な量は、関数 physics_fixture_set_linear_damping() に設定した内容によって異なります)。つまり、room_speed が 60 で、ダンピングがない部屋では、インスタンスは毎秒10メートルずつ加速します。 秒-これは、0.1ピクセルからメートルのスケールがある場合、60ステップで毎秒100ピクセルの速度に加速すると言っているのと同じです。
physics_world_gravity(xg, yg)
physics_world_gravity(-5, 0);
上記のコードは、重力を(部屋の物理学 (0, 0) が左上に設定されていると仮定して)右に(0度)、加速度を5メートル/秒の2乗に設定します。