目次:
GameMaker:Studioでは、物理のために定義されたオブジェクトを取得します。ゲーム中に部屋の周りでオブジェクトを移動させることができます。次の2つのセクションでは、オブジェクトに動きを加え、オブジェクトを左右に回転させる方法を示します。
局所的な力を適用するためのアップキーボードイベントのコード例
オブジェクトを強制的に移動させて移動させるには、次の手順に従ってUpキーボードイベントを作成します。次の手順に従ってください:
<! - 1 - >-
リソースツリーから、obj_playerオブジェクトまたは関連する別のオブジェクトをダブルクリックします。
[オブジェクトのプロパティ]ウィンドウが表示されます。
-
[イベントを追加]→[キーボード→上へ]を選択します。
「キーボード」イベントが「イベント」セクションに表示されます。
-
コード実行アクションをコントロールタブからアクションウィンドウにドラッグアンドドロップします。
空のコードウィンドウが表示されます。
-
コードウィンドウに次のコードを入力します。
<! - 2 - >physics_apply_local_force(0、0、0、-50);
-
緑のチェックマークをクリックします。
コードウィンドウが保存され、閉じられます。
このコードでは、 ローカル座標系 を使用して推進用ベクトルを設定します。ローカル座標は、X軸とY軸が原点で一致するスプライトに基づいています。だから、どのようにオブジェクトがルーム内で回転していても、スプライトの起源は決して変化しません。このようにして、この図に示すように、X = 0、Y = -1は常にSpriteの直下になります。
<! - 3 - >この関数の最初の値はxlocal、2番目の値はylocal、3番目の値はxforce_local、最後の値はyforce_localです。 yforce_localの値として-50という値を使用すると、船の後ろに力を入れて船を前方に押し込むことになります。
力の大きさは値に基づいているため、数値が大きいほど力は大きくなります。値を-50から-5000に変更して試してみてください。正の数(たとえば50)を使用すると、船が前方ではなく後方に移動しているように見えることに注意してください。
左および右キーボードイベントのコード例
プレーヤーがオブジェクトを回転できるようにするには、左および右キーボードイベントを追加します。プレイヤーにオブジェクトを左に向けるには、次の手順を実行します。
-
リソースツリーで、obj_playerオブジェクトまたは関連する別のオブジェクトをダブルクリックします。
[オブジェクトのプロパティ]ウィンドウが表示されます。
-
「イベントを追加」→「キーボード」→「左」を選択します。
左のキーボードイベントがイベントセクションに表示されます。
-
コード実行アクションをコントロールタブからアクションウィンドウにドラッグアンドドロップします。
空のコードウィンドウが表示されます。
-
コードウィンドウに次のコードを入力します。
phy_angular_velocity = 0; phy_rotation- = 10;
-
緑のチェックマークをクリックします。
コードウィンドウが保存され、閉じられます。
ゲーム中、オブジェクトを左に回すことができます。このコードは、物理的な回転を加算または減算します。これは、プレーヤーが左矢印キーを押したときにオブジェクトの方向と画像の角度を制御するものです。
オブジェクトを右に回すようにするには、次の手順に従います。
-
リソースツリーで、obj_playerオブジェクト(または他の関連オブジェクト)をダブルクリックします。
[オブジェクトのプロパティ]ウィンドウが表示されます。
-
「イベントを追加」→「キーボード」→「右」を選択します。
右のキーボードイベントがイベントセクションに表示されます。
-
コード実行アクションをコントロールタブからアクションウィンドウにドラッグアンドドロップします。
空のコードウィンドウが表示されます。
-
コードウィンドウに次のコードを入力します。
phy_angular_velocity = 0; phy_rotation + = 10;
-
緑のチェックマークをクリックします。
コードウィンドウが保存され、閉じられます。このコードは、物理的な回転を加算または減算します。これは、プレーヤーが右矢印キーを押したときに、オブジェクトの方向と画像の角度を制御するものです。
physics_apply_torqueを使用して回転力である トルクを使用してオブジェクトを回転させることで、オブジェクトをより自然な回転にすることができます。トルクはオブジェクトの質量を考慮に入れ、実際のオブジェクトのように回転を遅くします。しかし、ゲームでは、あなたは常にそれがあまりにもリアルであることを望んでいるとは限りません(それはゲームです)。 GameMaker:Studioの物理世界と従来の機能の別の違いは、通常、方向と画像の角度は反時計回りに計算されるため、方向変数に10を追加するとオブジェクトが左に回転することです。ただし、物理を使用する場合、方向と角度は時計回りに計算されるため、回転値に10を加算するとオブジェクトが右に回転します。
