011.Gamemaker:オブジェクト変数まとめ(1/?)~一般変数編~
この記事について
Gamemakerでインスタンスを作成した時、定義していないのに使える変数が結構ある。(「○○.x」「○○.y」のようなやつ)
この記事は、そのインスタンス変数を解説する初心者向けの記事。
1.一般変数
勝手に設定されているけど重要なやつら。
1-1.id
100000から始まって1ずつ増える。同じオブジェクトを元にインスタンスを複数作っても、idは被らない。一意なので。
1-2.visible
オブジェクトを表示するかどうか。デフォルトではチェックON(=true)。
falseにすると「描画」イベントで描いたものが軒並み非表示になる。draw_text()とかdraw_rectangle()等も非表示。
1-3.solid
これをtrueにすると、オブジェクトと衝突時自動的に衝突前の位置に戻されるらしいが、試した所普通に透過してしまう・・・。
衝突処理なら最近公式がチュートリアルビデオを出しているし、そちらを使った方がよいかも。
https://www.youtube.com/watch?v=wmPOjMBo_N8
※ただし、経路検索ではsolidが重要となる模様。
1-4.persistent
ルームを移動してもオブジェクトを存続させるかどうか。デフォルトではfalse。基本的にfalseでいいと思う。
1-5.depth
インスタンスを配置する深さ。深ければ奥に描画される。-16000~16000まで指定できるようだが、depth=100を指定すると描画されなくなった。
多分深すぎて背景の黒に塗りつぶされたのだろう。
1-6.layer
インスタンスを配置する層。インスタンス作成時にはレイヤー名で指定するが、"layer"変数で得られるのは数値になっている。
depthと同じく数値が大きいほど奥に配置される。
instance_create_layer(0, 0, "Instances_top", obj_player);
instance_create_layer(25, 25, "Instances_middle", obj_player);
instance_create_layer(50, 50, "Instances_bottom", obj_player);
ちなみに筆者はdepthよりlayer派である。(instance_activate_layer関数が便利なので)
1-7.alarm
配列型。alarm[0]~alarm[11]まで12個ある。
alarm_set()関数の代わりに使えるが、それ以外に用法が思い浮かばない。
//下記の2行は同じ処理
alarm[0] = 30;
alarm_set(0, 30);
●参考URL
Gamemaker日本語Discord
https://discord.gg/FXuHCM9QCD
詳しい方々が質問に優しく答えてくださいます。自分も何度もお世話になっています。
Gamemaker日本語掲示板
https://zawazawa.jp/gamemaker_jp/
こちらも詳しい方々が優しく教えてくださいます。メンバーはDiscordと大差ないかもしれません?