ページ 1 / 1
【解決済】ゲーム変数を配列で使用する場合のスクリプト
Posted: 2020年8月31日(月) 21:14
by MEIKOI
こんにちは、いつもお世話になってます。
ゲーム変数1番を100の要素を持つ配列で使いたいのですが、
すべての要素の初期値を1に設定するためのスクリプトを調べながら
何種類か試したのですが、すべてダメだったので質問させてください。
具体的には、
for(var i = 0; i < 100; i++){
スクリプト;
}
の形で初期値を設定したいのですが
スクリプトの部分は、どのように記述すればよいのでしょうか?
教えていただけると大変助かります。よろしくお願いいたします。
Re: ゲーム変数を配列で使用する場合のスクリプト
Posted: 2020年8月31日(月) 21:36
by Plasma Dark
長さ100で、すべての要素を1で初期化した配列をゲーム変数に代入したい、であると仮定してお答えすると、変数に代入するスクリプトだけで書くことができます。
コード: 全て選択
Array(100).fill(1)
何のためにこの配列を用意して、どのように使用するのかまで詳細に書くともしかしたらもっと効率的な方法を答えてくれる人がいるかもしれません。
Re: ゲーム変数を配列で使用する場合のスクリプト
Posted: 2020年8月31日(月) 22:04
by MEIKOI
Plasma Dark 様 はじめまして!
ありがとうございます!
何に利用するのかといえば、
100個あるアイテムをそれぞれ何回取得したことがあるのかを
記録するために使いたいと思ってます。
アイテムを売買するので、所持量と別に過去の取得回数だけを別に保存しておきたい訳でして。
で、で、
$gameVariables._data[1] = Array(100).fill(1);
の記述で動かしてみたところうまく代入されたようです。
簡素なスクリプトがあるんですね。感謝です。
ちなみにですが、手当たり次第に試しているうちに
$gameVariables._data[1] = [];
for(var i = 0; i < 100; i++){
$gameVariables._data[1] = 0;
}
でも代入ができたようなのですが、まちがった記述でなければいいのですが^^;;
それに明らかにPlasma Dark 様の教えて下さったほうが、早いような「気」がします。わかんないけど^^;
やってることは、両方とも同じと思って良いでしょうか?
同じような事をしたいツクラー初心者様もたくさんいると思うので
とても感謝です。ありがとうございます。
Re: ゲーム変数を配列で使用する場合のスクリプト
Posted: 2020年8月31日(月) 22:45
by Plasma Dark
$gameVariables._data[1] = Array(100).fill(1);
の記述で動かしてみたところうまく代入されたようです。
_始まりの変数に外部からアクセスするのは行儀が悪いので、せめて
コード: 全て選択
$gameVariables.setValue(Array(100).fill(1));
と書くほうが良いです。
それよりもベターなのは、イベントコマンドのスクリプトを直接使わずに、変数の操作でスクリプト欄に Array(100).fill(1) とだけ書くことです。
それに明らかにPlasma Dark 様の教えて下さったほうが、早いような「気」がします。わかんないけど^^;
実際に計測してないのでなんとも言えませんが、数回~数百回の実行程度ではあまり意味のある差は出ないんじゃないかと思います。
fillを使ったほうが明らかにメンテナンスしやすいので、そちらをオススメします。
Re: ゲーム変数を配列で使用する場合のスクリプト
Posted: 2020年8月31日(月) 23:08
by MEIKOI
ありがとうございます!
教えていただいた記述に変更いたしました!
すっきりしましたー
夕方からこれで止まってたんで、一気に楽になりました!!!とても感謝です!^^