GameMaker 日本語掲示板

"Variable set failed depth - read only variable?" エラー

1 コメント
views
17 フォロー

この種のエラーを見たのが記憶になく、エラーメッセージの意味が分かりにくいので
メモとして書き記しておきます。

エラー内容:
> Pop :: Execution Error - Variable set failed depth - read only variable?

("depth"はエラー箇所で使っている変数なのでいろいろあり得ます)

いろんな原因があるかもしれませんが、私の場合は
instance_destroy()した後でビルトイン変数(x, y, depth, image_speedなど...)を参照した。
これが原因のようでした。

具体的にはobjAの関数内で

obj.depth = 100; // objはobjAのインスタンス

としていましたが、objAでinstance_destroy();したタイミングでエラーが発生。

destroyの前に関数を移動したところエラーは出なくなりました。また、

with (obj) depth = 100;

としても出なくなりました。with()にはインスタンス存在チェック機能があるからだと思います。

以上、エラー内容に関するメモでした。

asa
作成: 2022/09/04 (日) 16:21:43
通報 ...
1

withってそんな便利な機能ついてたんですね…
自分はプレイヤーキャラの存在エラーをよく起こしていたので、いっそのこと迂回策をやめてゲームプレイ中に絶対インスタンスを削除せずにパラメーターをグローバル変数と同じ扱いにしてたんですが、別の方法として覚えておきます