メインコンテンツへスキップ
見出し画像

011.Gamemaker:オブジェクト変数まとめ(1/?)~一般変数編~

    この記事について

    Gamemakerでインスタンスを作成した時、定義していないのに使える変数が結構ある。(「○○.x」「○○.y」のようなやつ)
    この記事は、そのインスタンス変数を解説する初心者向けの記事。

    1.一般変数

    勝手に設定されているけど重要なやつら。

    1-1.id

    100000から始まって1ずつ増える。同じオブジェクトを元にインスタンスを複数作っても、idは被らない。一意なので。

    画像
    idは被らない

    1-2.visible

    オブジェクトを表示するかどうか。デフォルトではチェックON(=true)。
    falseにすると「描画」イベントで描いたものが軒並み非表示になる。draw_text()とかdraw_rectangle()等も非表示。

    画像
    ”可視”で設定できる
    画像
    visible=falseで非表示(本当は下側にobj_playerがいる)

    1-3.solid

    これをtrueにすると、オブジェクトと衝突時自動的に衝突前の位置に戻されるらしいが、試した所普通に透過してしまう・・・。
    衝突処理なら最近公式がチュートリアルビデオを出しているし、そちらを使った方がよいかも。
    https://www.youtube.com/watch?v=wmPOjMBo_N8  

    画像
    ”ソリッド”で設定できる
    画像
    壁もsolid=trueだが透過してしまう

    ※ただし、経路検索ではsolidが重要となる模様。

    画像
    壁(solid=true)を避けて追って来てくれる赤さん

    1-4.persistent

    ルームを移動してもオブジェクトを存続させるかどうか。デフォルトではfalse。基本的にfalseでいいと思う。

    画像
    ”持続的”で設定できる
    画像
    ルーム移動してもオブジェクトが残る

    1-5.depth

    インスタンスを配置する深さ。深ければ奥に描画される。-16000~16000まで指定できるようだが、depth=100を指定すると描画されなくなった。
    多分深すぎて背景の黒に塗りつぶされたのだろう。

    画像
    5人作ったはずなのに

    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と大差ないかもしれません?

    あなたへのおすすめ