GML のコーディング規約
ローカル変数の先頭には _ を付ける
インデントはスペース4つ
長いスクリプトの場合は #region ~ #endregion で区切る
Array を使う場合は、最初に必要サイズを指定してメモリを確保する必要がある。このとき 0 で初期化するのが一般的。ただし、HTML5がターゲットの場合はメモリ確保は動作しないので注意
code:javascript
// HTML5をターゲットにしているかどうか判定
if (os_browser == browser_not_a_browser) {
// HTML5でなければ、100個の要素分のメモリを確保する
array_create(100, 0);
} else {
// HTML5の場合、メモリ確保のコードは適用されない
// つまり、100個の要素が0で初期化されない
// 代わりに、100の要素を直接全て0で初期化する
for (var i = 0; i < 100; ++i;) {
}
}
Array を開放したい場合は array = 0 とする
Array は参照渡しで、かつ受け渡し先のスクリプトで書き換えられると Copy on Write により配列はコピーされる。参照先の配列を直接書き換えたい場合は、特別なアクセサである @ を利用する
GameMaker Studio2 はいくつかデータ構造を提供している。例えば Array よりは確かに遅いけど、コードを簡潔にできかつそのスピード差もわずかなので、利用していくのが良い
Stack, Queue, List, Map, Priority Queue, Grid など