GameMaker 日本語掲示板

activate/deactivateを使わず簡単に済ませる方法

2 コメント
views
16 フォロー

instance_activate/instance_deactivate関数を使って条件をつけてdeactivateしてまたactivateするとなると処理がちょっと複雑になりますが、これを簡単に済ませるやり方です。

インスタンスをroom外へ出す/戻すということをします。
実際にactivate/deactivateするのではなく、room外へ追いやって一旦蚊帳の外へ出てもらうという処理です。
これで済む場合も結構あります。
下記の関数は一例です。

/// @desc scr_instance_activate();
/// @param {bool} do_activate
/**********************************************************************
desc
簡易版アクティベート関数
インスタンスをroom外に出す / 戻す

return : n/a
**********************************************************************/
var _do_activate = argument0;

if (_do_activate)
{
	if (x < 0) x = -(x+5000); // room内に戻す
}
else
{
	if (x >= 0) x = -(x+5000); // room外に出す
}
asa
作成: 2021/02/26 (金) 15:58:20
通報 ...
1

stepとか呼ばれてしまう感じですか?

2

deactivateしないのでinstanceは動き続けます。stepイベントも実行され続けます。
なので必要があればstepイベント内の処理をスキップさせたりします。