Maxscriptで構造体をチャンと書く


Maxscriptではクラスを作ったりすることはできない。
そこで代用として構造体(struct)を使う。
これを使う事でオブジェクトっぽい使い方ができる。
スコープ範囲などがはっきりわかれるのでスクリプトのお行儀がよくなるし、
あとJacascriptが好きな人はすぐになじめると思う。

struct TestStu
(
    PRIVATE
    debug = true,

    PUBLIC
    val = 5,

    function testfunc =
    (
        print "test";
    ),

    on Create do
    (
        print "Init";
    )
)

test_stu = TestStu()

これが基本的なチャンとした書き方。

各変数、関数区切りはカンマを使って区切る。

ミソとして PRIVATE と PBULIC がある。

書かなくても問題ない部分だけれど、変数などをPRIVATEに絞ったりもできる。

他にこの構造体のインスタンスが作成されたときの初期化時に何かを実行させたい場合は
on Create do というイベントを使って実行内容を記述する。
コレでより一層クラスっぽくなる。

 

これを評価するてーっと・・・

こんな感じ。
ちゃんとプライベートとパブリックが分かれていて
初期化時の実行内容が確認できる。

 

ちなみに、PRIVATEとPBULICは何度でも書いて問題ない。
こんな感じ。

struct TestStu
(
    PRIVATE
    debug = true,

    PUBLIC
    val = 5,

    -- このPUBLICとPRIVATEはいつでも書ける
    PRIVATE
    _name_ = true,

    PUBLIC
    function testfunc =
    (
        print "test";
    ),

    on Create do
    (
        print "Init";
    )
)

test_stu = TestStu()

この構造体のプロパティを確認したい場合は単純に show を使ってやればいい。
こんな感じ。

 

さっき作った構造体の内容が確認できる。

構造体をグローバル変数作っておけば、例えば他のツールからでもアクセスできる。
これを生かせばpythonからでも呼び出すことができるしメチャクチャ便利。
構造体を潰すなら undefined 代入しておけばOK。

昔素人だった時代には、こういった基礎知識なしに
素人コーディングしていたので、自前のツールを治すのがホントに面倒・・・。

はぁ、昔作ったコード誰か直してくれないかな・・・

 

という事で今日のメモでした~~。

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください