ビデオ: GameMaker Studio 2 - How To Transition Rooms Beginner Tutorial 2025
GameMaker:Studioの描画オブジェクトで発生する1つの問題は、剛直な線で四角。次の手順では、壁面の影を描画するSurfaceを作成する方法を示します。
サーフェスエフェクトの新しいオブジェクトを作成するには、次の手順を実行します。
-
サーフェスチュートリアルを開いた状態で、リソースツリーからオブジェクトを右クリックし、オブジェクトの作成を選択します。
<! - 1 - >オブジェクトのプロパティが表示されます。
-
「名前」フィールドに「obj_Shadow_Surface」と入力します。
-
Depthフィールドに-900と入力します。
この奥行きは、壁のインスタンスの下に影を描くので、壁自体に影の効果が現れることはありません。
-
「イベントを追加」→「作成」を選択します。
イベントの作成セクションがイベントセクションに表示されます。
-
実行コードアクションをコントロールタブからアクションセクションにドラッグアンドドロップします。
<! - 2 - >コードウィンドウが表示されます。
-
コードウィンドウに次のように入力します。
surf = -1;
このコードはSurfaceの変数を作成しますが、Surface自体は作成しません。
-
緑のチェックマークをクリックします。
コードウィンドウが保存され、閉じられます。
Drawイベントでサーフェスエフェクトを作成します。これはゲームのすべてのステップでトリガーされます。
まず、サーフェイスエフェクトを不要にしたときにサーフェイスエフェクトを削除する手順を次に示します。
<! - 3 - >-
obj_Shadow_Surfaceオブジェクトのプロパティから、イベント追加→その他→ルームエンドを選択します。
ルームエンドイベントがイベントセクションに表示されます。
-
実行コードアクションをコントロールタブからアクションセクションにドラッグアンドドロップします。
コードウィンドウが表示されます。
-
コードウィンドウに次のように入力します。
if surface_exists(surf){surface_free(surf);}
-
緑のチェックマークをクリックします。
コードウィンドウが保存され、閉じられます。
このコードは、Surfaceが使用していたメモリを解放します。
サーフェスが不要になったときにメモリが解放されないと、ゲームがメモリリークを引き起こし、最終的にゲームがクラッシュする可能性があります。
