GameMaker:Studio-ds_listsの書き方

例文:

ds = ds_list_create();
var index = 0;
var ar = [1,2,3,4];
repeat(10)
{
var ar_tmp = ar;
ar_tmp[2] = index;
ds[| index++] = ar_tmp;
}
こんな書き方するとデータコピーになる。
ただ、これでarに直接値を突っ込むと、dsで参照できる値について
ほぼ同じ値になる。(1番目の要素が新規作成、それ以降は全部同じ)

どちらかというとrepeatステートメントの仕様かコンパイラの仕様なのかもしれない。

対策:
repeat内に一時的な変数を作って、その中に格納するデータを突っ込んで、
ds_listsの値として代入する。これだと値コピーになるっぽい。

コメントを残す

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