配列を最大要素数で確保した際に、最大要素数以下の配列要素には初期値として 0 が入ります。

    var a; a[9] = 0;

このエントリーをはてなブックマークに追加

全ての値を0で埋める処理について

上記は一応、配列全ての値に対する 0 fill (ゼロフィル/配列の全ての要素に初期値として 0 を代入して埋める処理)なのだけど、これは GMS だと安全な書き方ではありません。

Windows PC では a[0] 〜 a[8] は 0 で初期化されます(C の仕様と同じ)。

しかし HTML5(もしくは JavaScript) では a[0] 〜 a[8] へアクセスすると undefined でエラー扱いとなります。

ここはコンパイラで解釈が異なる部分なので注意。

安全な方法

めんどうでもループを回して、全ての要素に対して一度値を代入する処理を行うのが一番確実な方法となります。


    for (var i=9;i>=0;i--){a[i]=0};

これが安全かつ確実。

データ構造(アクセサリ)だとまたちょっと仕様が異なるため、ここで語られているのは GML から配列を利用した場合の仕様です。

データ構造のページへ

Leave a Reply

Your email address will not be published. Required fields are marked *