instance_destroy()


Game Maker Language リファレンス > 組み込み関数 用途別 > ゲームプレイ > instance_destroy

instance_destroy()

現在実行中のインスタンスを現在のルームから破棄します。

  • 対応:5.3A 6.0 6.1A 7.0
  • lite OK

書式

instance_destroy(id=self, execute_event_flag=true)
id
破棄を行うインスタンスID(デフォルトは現在実行中のインスタンスに対して行う)
execute_event_flag
Destroyイベントを呼び出すかどうか(デフォルトはDestroyイベントを呼び出す)

戻り値

N/A
なし

機能

現在のインスタンスを破棄します。通常は呼び出した後、Destroyイベントに移行します。この機能を使用することで、ルームの再スタート時以外でもインスタンスの破棄を行うことができます。("persistent" が有効なオブジェクトはルームの再スタートでも破棄されないことに注意してください)

また最初の引数にインスタンスID、またはオブジェクトIDを指定することで、現在実行中でないインスタンスに対しても破棄を行うことができます。

instance_destroy(other); // Collisionイベントでの衝突した側の破棄処理を呼び出す
instance_destroy(obj_Bullet); // "obj_Bullet" すべてを破棄する

さらに、二番目の引数に false を指定することで、Destroyイベントを呼び出さずに破棄することも可能です。

注意点

instance_destroy() は直ちにインスタンスを破棄し、イベントを終了する命令ではありません。例えば以下のようなコードのおいて

if hp <= 0 {
  instance_destroy();
}
score += 10;

HPが0以下になり破棄処理が行われた後でも、スコアの加算は行われます。

またオブジェクトを動的に生成してそのインスタンスIDを保持する場合は、破棄タイミングに注意してください。 破棄されたインスタンスにアクセスすると "unknown resource" のエラーが発生します。


if bbox_right < 0 || bbox_left > room_width || bbox_bottom < 0 || bbox_top > room_height
{
  instance_destroy(id, false);
}

上記コードは、現在のルーム外に移動したインスタンスを Destroyイベントを呼び出さずに破棄しています

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2020-06-28 2020-06-20 2020-05-27 2020-05-12 2020-05-10 2020-05-08 2020-05-07 2020-04-30 2020-04-28 2020-04-27

人気の10件

今日の10件



これまでの訪問者: 3319
今日の訪問者: 2
昨日の訪問者: 1
閲覧者: 1